JAVA(正则表达式)
元字符
. :匹配处了换行符之外的任意字符
\w :匹配字符或数字或下划线或汉字
\s:空格
\d:匹配数字
\b:匹配单词的开始和结束
^:匹配字符串的开始
$:匹配字符串的结束
匹配8位数字的qq号:^\d\d\d\d\d\d\d\d$
匹配1开头11位数字:^1\d\d\d\d\d\d\d\d\d\d\d$
因为有大量重复的所以引入重复限定符
重复限定符
*:重复零次或更多次
+:重复一次或更多次
?:重复零次或更多次
{n}:重复n次
{n,m}:重复n到m次
匹配8位数字的qq号:^\d{8}$
匹配1开头11位数字:^1\d{10}$
银行卡号14-18:^\d{14,18}$
匹配以a开头,0个多个b结尾的字符串 ^ab*$
分组
限定符的作用与它相邻的左边的一个字符起作用
如果想要ab同时被限定怎么办
正则表达式可以用小括号分组,括号内的内容会作为一个整体
^(ab)*$
转义
匹配字符串中包含0到多个(ab)开头:^((\ab\))*
| 单或
^(130|131 |132|155|156|185)\d{8}$
区间
[] :表示区间
0-9:[0-9]
A-Z:[A-Z]
反义
\W:不是数字字母,下划线,中文
\S:不是空格
\D:不是数字
\B:不是单词开头或结束
[^x]:除了x以外的任意字符
[^aeiou]:匹配除了aeiou的任意字符
常见的正则表达式
匹配中文的字符:[],匹配的是ASCII码
邮箱:^[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)$
国内座机电话号:0431-81234567 010-8123457
^\d{3,4}-\d{8}$
QQ号:^[1-9][0-9]{4-11}$
正则表达式的应用
Pattern类
Matcher类
PatternSyntaxException类
String str = "hello, i am jilin";
//必须包含jilin子串
String pattern = ".*jilin.";
boolean matches = Pattern.matches(pattern, str);
System.out.println(matches);
@Test
public void teat(){
String re = "cat asa cat aca cat";
String str = "cat";
Pattern pattern = Pattern.compile(str);
Matcher matcher = pattern.matcher(re);
//统计
int c = 0;
while (matcher.find()){
c++;
}
System.out.println(c);
}
标签:字符,ab,匹配,数字,正则表达式,08,张晟源,重复,12 From: https://www.cnblogs.com/shenmimao/p/16578644.html