java的正则表达式

基本语法:

Pattern p=pattern.compile("正则表达式的内容");

String s="str";

Matcher m=p.matcher(s);   //用正则表达式去匹配字符串;

System.out.println(m.matches());   //打印出来是布尔型;matches匹配的是整个字符串,只是找到一个

m.find()//是在整个序列中找到符合正则的子序列,并且从符合的子序列的最后一个位置再次开始寻找,直到结尾,此时我们就可以使用了分组(group)的概念

例如:

regex="(\\d{2,4})-(\\d{2,3})";//转义字符单个杆变俩个,在这里m.group()和m.group(0)都是代表整个要匹配的regex,但是group(1)和group(2)分别代表(\\d{2,4}),(\\d{2,3})

这这里假如str="1997-12"

while(m.find()){

  System.out.println(m.group(1);//打印的是1997

  System.out.println(group(2);//打印的是12

}

符号的代表意义:

\d  数值[0-9];

\D [^0-9]   意思是不是0-9之间的;

\s 空格字符;

\S 非空格字符;

\w 组成单词的字符;

\W 非组成单词的字符;

(如果需要使用还要在前面加上\,因为java的转义字符两\\代表一个\)

[]是值可选的范围,{}是出现的次数,{}具体有三种用法:

1 {5}  //某个值出现的次数只能是5次;

2   {2,} //某个值出现的次数大于等于2,无上限有下限;

3 {2,5} //某值出现的次数在2-5间,边界可取等于;

^符号在不同的地方有不同的意义:在方括号外面是第一个开头的意思;在方括号里面是非的意思;

例如:

“^h.*” 意思是第一个开头字母必须是h开头:

“[^a-z] ” 意思是不在a-z之间;

posted @ 2018-10-28 22:13  天晴月明  阅读(155)  评论(0)    收藏  举报