正则是自定义一个表达式作为规则,然后一段文字去判断是否匹配这个表达式。
表达式组成:
一、字符内容
[ ] :可以是这里面的任何字符,比如[abc], [A-Z] : "-"表示区间范围,从A到Z
“^”表示取反,对后面的字符生效
d:数字。 D: 非数字,也就是 [^\d]。在java程序中,要转义为"\d"
“.” 表示任意字符。 “.”表示“.” 。
“[A-z]”表示所有的大小写字母 。 [^A-z0-9]:表示非字母数字的字符,比如空格,符号等。
[ _ ^A-z0-9] : "w"表示:下划线和[^A-z0-9] 。"W":即“^w” 。这些转义字符,大写字母的,是对小写字母的取反。
S 表示:空格、tab、回车
二、数量
{ } : 表示前面的定义的字符出现的次数,比如{5}
* :任意次
+ :>0次, 即:{1,} 至少一次
?:0或1次,即{0,1} 逗号表示“或”
例子:[0-9]
[0-9]{1,2}
[0-9]+bc :加号修饰[0-9]出现的次数。
[^0-9]bc : 非数字和bc拼接
三、使用正则表达式,查找匹配字符串
使用java提供的Pattern和Matcher对象
例子:
1 Pattern p=Pattern.compile("@\w+\s"); 2 3 String str="@tom @lucy 这是我的电子邮件,给我发邮件吧!abc@126.com"; 4 5 Match m=p.matcher(str); 6 7 while(m.find()){ 8 9 System.out.println(m.group); //m.group()返回匹配的字符串 10 }
打印结果:
@tom
@lucy