一. java中正则表达式的简单用法:
简单用法:
String regex = "vars.[A-Z,a-z]+";
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(s);
Set<String> set = new HashSet<String>();
while (matcher.find()) {
set.add(matcher.group());
}
分组:圆括号内为一个分组,分组下标从1开始,matcher.group()即matcher.group(0),为整个匹配字符串
Matcher matcher = Pattern.compile("(\\d\\d)/(\\d\\d)/(\\d\\d\\d\\d)").matcher(now);
if (matcher.find()) {
System.out.println(matcher.group(1));
System.out.println(matcher.group(2));
System.out.println(matcher.group(3));
}
二. 正则表达式字符简单说明:
字符 | 含义 | 正则表达式示例 | 可匹配字符串 |
通配符"."
|
匹配所有字符,包括空格、Tab字符甚至换行符
|
t.n
|
tan、t2n、t&n等
|
方括号"[]"
|
只能匹配方括号之内的单个字符
|
t[abc]n
|
tan、tbn、tcn
|
或符号"|"
|
与圆括()搭配使用,表示或运算
|
t(a|aa|b)n
|
tan、taan、tbn
|
次数符合"*"
|
0次或多次
|
ab*
|
a、ab、abb、abbb等
|
次数符号"+"
|
1次或多次
|
ab+
|
ab、abb、abbb等
|
次数符号"?"
|
0次或1次
|
ab?
|
a、ab
|
次数符号"{n}" | 恰好n次 | ab{2} | abb |
次数符号"{m,n}" | 从m次到n次 | ab{2,4} | abb、abbb、abbbb |
连字符"-" | 表示范围从开始到结束 | [a-z] | 从a到z的字符 |
转译字符"\" | |||
脱字符"^" | 表示不想要匹配的字符 如果脱字符没有在[]字符组的第一个位置,那么该^仅表示一个字符,没有特殊意义 | [^0-9] | 字符串中除数字外的字符 |
空白字符:"\s" | 匹配所有的空白字符,包括Tab字符 | ||
行的开始和结束 开始符号:^ 结束符号:$ | ^cat$ |
以c开头接着是a->t然后是行结束:只有cat三个字母的数据行 |
\0n | 八进制值的字符0n (0 <= n <= 7) |
\0nn | 八进制值的字符 0nn (0 <= n <= 7) |
\0mnn | 八进制值的字符0mnn 0mnn (0 <= m <= 3, 0 <= n <= 7) |
\xhh | 十六进制值的字符0xhh |
\uhhhh | 十六进制值的字符0xhhhh |
\t | 制表符('\u0009') |
\n | 换行符 ('\u000A') |
\r | 回车符 ('\u000D') |
\f | 换页符 ('\u000C') |
\a | 响铃符 ('\u0007') |
\e | 转义符 ('\u001B') |
\cx | T对应于x的控制字符 x |