java中的正则表达式

来源:互联网 发布:java考试系统源码下载 编辑:程序博客网 时间:2024/06/07 21:46

1.验证字符串是否匹配的方式:

     1.String 的.matches(regex)方法

      2.Pattern类

//1.输入正则表达式Pattern pattern=Pattern.compile(compile);//2.要匹配的字符Matcher matcher=pattern.matcher(match);//3.比较或查找matcher.matches();
matcher.find();


2.正则表达式

2.1 String 对正则表达式的支持,重点掌握如下3个方法: 
matches() 匹配正则表达式  
split() 切分字符串为字符串数组  
replaceAll()
2.2常用匹配符

1.边界匹配器 ^ 行的开头 $ 行的结尾 \b 单词边界 \B 非单词边界 \A 输入的开头 \G 上一个匹配的结尾 \Z 输入的结尾,仅用于最后的结束符(如果有的话) \z 输入的结尾 2.字符类 [abc] a、b 或 c(简单类) [^abc] 任何字符,除了 a、b 或 c(否定) [a-zA-Z] a 到 z 或 A 到 Z,两头的字母包括在内(范围) [a-d[m-p]] a 到 d 或 m 到 p:[a-dm-p](并集) [a-z&&[def]] d、e 或 f(交集) [a-z&&[^bc]] a 到 z,除了 b 和 c:[ad-z](减去) [a-z&&[^m-p]] a 到 z,而非 m 到 p:[a-lq-z](减去)   3.预定义字符类 . 任何字符(与行结束符可能匹配也可能不匹配) \d 数字:[0-9] \D 非数字: [^0-9] \s 空白字符:[ \t\n\x0B\f\r] \S 非空白字符:[^\s] \w 单词字符:[a-zA-Z_0-9] \W 非单词字符:[^\w] 4.1 Greedy 数量词 (贪婪)X? X,一次或一次也没有 X* X,零次或多次 X+ X,一次或多次 X{n} X,恰好 n 次 X{n,} X,至少 n 次 X{n,m} X,至少 n 次,但是不超过 m 次   4.2 Reluctant 数量词 (懒惰)X?? X,一次或一次也没有 X*? X,零次或多次 X+? X,一次或多次 X{n}? X,恰好 n 次 X{n,}? X,至少 n 次 X{n,m}? X,至少 n 次,但是不超过 m 次   4.3 Possessive 数量词 (强占)X?+ X,一次或一次也没有 X*+ X,零次或多次 X++ X,一次或多次 X{n}+ X,恰好 n 次 X{n,}+ X,至少 n 次 X{n,m}+ X,至少 n 次,但是不超过 m 次 

注意:
贪婪模式:在使用修饰匹配次数的特殊符号时 比如:"{m,n}", "{m,}", "?", "*", "+" 是尽可能地多匹配或尽可能的 "要匹配"
懒惰模式:尽可可能少的匹配,在贪婪模式后加?就是懒惰模式, 比如:"{m,n}?", "{m,}?", "??", "*?", "+?"
抢占模式:比上面的更严格,对整个字符串进行匹配,在贪婪模式后加+就是懒惰模式, 比如:"{m,n}+", "{m,}+", "?+", "*+", "++"


String match5="dfsgdfegdcfgvdfsdf";String p="df.*g";//贪婪匹配输出dfsgdfegdcfgString p2="df.*?g";//懒惰匹配输出dfsg和 dfegString p3="df.*+g";//强占模式无输出,匹配不到//1.输入正则表达式//Pattern pattern=Pattern.compile(p);//Pattern pattern=Pattern.compile(p2);Pattern pattern=Pattern.compile(p3);//2.要匹配的字符Matcher matcher=pattern.matcher(match5);while(matcher.find()){System.out.println(matcher.group());}

重点注意:在java中使用正则表达式的时候,要注意“\”的转义,例如我要匹配$,则要写\$,匹配{则要用\{


下面列几个常用匹配:
1.匹配qq邮箱
[a-zA-Z0-9]+@(qq|QQ).com


2.匹配主机号
^([1-9]|[1-9]\\d{1,3}|[1-6][0-5][0-5][0-2][0-9]|[1-6][0-5][0-5]3[0-5])$


3.匹配端口号0~65535
(^[0-9]|[1-9]\\d{0,1}|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\\.([0-9]|[1-9]\\d{0,1}|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\\.([0-9]|[1-9]\\d{0,1}|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\\.([0-9]|[1-9]\\d{0,1}|1[0-9][0-9]|2[0-4][0-9]|25[0-5])














原创粉丝点击