码迷,mamicode.com
首页 > 编程语言 > 详细

java正则表达式

时间:2015-02-28 01:33:04      阅读:203      评论:0      收藏:0      [点我收藏+]

标签:

 
 

java正则表达式

正则表达式


 

一,java.util.regex包中提供了两个类来表示对正则表达式的支持

 

1.Matcher,通过解释Pattern对character sequence 执行匹配操作的引擎

public final class Matcher implements MatchResult

 

2.Pattern,正则表达式的编译表示形式

public final class Pattern implements java.io.Serializable

 

代码:

package yuki.regular;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class FirstTest {

    public static void main(String[] args) {
        
        /**
         * Pattern,正则表达式的编译表示形式
         * public final class Pattern implements java.io.Serializable
         */
        String str = "hi! i am a tony; glad to see you!";
        
        String regex = "\\p{Punct}";
        Pattern pattern = Pattern.compile(regex);
        String[] strArr =  pattern.split(str);
        
        for(int i = 0; i < strArr.length; ++i)
            System.out.println("strArr[" + i + "] = " + strArr[i]);
        
        
        /**
         * Matcher,通过解释Pattern对character sequence执行匹配操作
         * public final class Matcher implements MatchResult
         */
        Matcher matcher = pattern.matcher(str);
        System.out.println(matcher.matches() ? "匹配" : "不匹配");
        System.out.println(
                Pattern.compile("\\p{Punct}+").matcher(".,.;").matches() 
                ? "匹配" : "不匹配");
        
        String s2 = "yuki@gmail.com";
        Pattern p2 = Pattern.compile("\\w+@\\w+.[a-zA-Z]+");
        Matcher m2 = p2.matcher(s2);
        System.out.println("m2.matches() = " + m2.matches());
    }
}

 

 

运行结果:

strArr[0] = hi
strArr[1] =  i am a tony
strArr[2] =  glad to see you
不匹配
匹配
m2.matches() = true

 

 

二,String类对正则的支持

代码:

package yuki.regular;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class SecondTest {

    public static void main(String[] args) {
        
        /**
         * 匹配替换
         */
        String date = "2015/2/27";
        Pattern p = Pattern.compile("/");
        Matcher m = p.matcher(date);
        String s = m.replaceAll("-");
        System.out.println("m.matches() = " + m.matches());
        System.out.println("s = " + s); 
        System.out.println("m.replaceFirst(\"-\") = " + m.replaceFirst("-"));
        
        
        //匹配电话号码
        String phone = "0755-28792686";
        String regex = "\\d{3,4}-\\d{7,8}";
        boolean isPhone = phone.matches(regex);
        System.out.println("isPhone = " + isPhone);
    }
}

 

运行结果:

m.matches() = false
s = 2015-2-27
m.replaceFirst("-") = 2015-2/27
isPhone = true

 

 

三,常用示例

代码:

package yuki.regular;

public class ThirdTest {

    public static void main(String[] args) {
        
        /**
         * 至少含有字符串数组中的一个
         */
        String s = "123,456,789,012,345";
        String s2 = "123,456,789,013,345";
        String regex = ".*(234|678|012).*";
        boolean isMatch = s.matches(regex);
        boolean isMatch2 = s2.matches(regex);
        System.out.println("isMatch = " + isMatch);
        System.out.println("isMatch2 = " + isMatch2);
        
        
        //匹配金额
        String price = "499.00";
        System.out.println("price.matches(\"\\d+.\\d+\")" + price.matches("\\d+.\\d+"));
    }
}

 

运行结果:

isMatch = true
isMatch2 = false
price.matches("\d+.\d+")true

 


更多参考:
API:java.util.regex
马剑威_JAVA基础_正则表达式

 


点击下方的红色按钮关注我吧!
孔东阳
二〇一五年二月二十七日
http://www.cnblogs.com/kodoyang/

 

java正则表达式

标签:

原文地址:http://www.cnblogs.com/kodoyang/p/regular_expression_java.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!