\ 转义
^ 匹配开头
$ 匹配结尾
星号:“*” 零次或多次匹配
? 零次或一次匹配
加号 :“+” 一次或多次匹配
点:. 匹配除"\r\n"之外的任何单个字符。
{n} 匹配n次
{n,} 至少匹配n次
{n,m} 至少n次,最多m次
x|y 匹配 x 或 y
[xyz] 字符集,必须全包括
[^xyz] 反向字符集
[a-z] 字符范围
[^a-z] 反向字符范围
\b 匹配一个字边界,即字与空格间的位置。例如,"er\b"匹配"never"中的"er",但不匹配"verb"中的"er"
\B 非字边界匹配。"er\B"匹配"verb"中的"er",但不匹配"never"中的"er"。
\d 数字字符匹配。等效于 [0-9]
\f 换页符匹配。等效于 \x0c 和 \cL。
\n 换行符匹配。等效于 \x0a 和 \cJ。
\r 匹配一个回车符。等效于 \x0d 和 \cM。
\s 匹配任何空白字符,包括空格、制表符、换页符等。与 [ \f\n\r\t\v] 等效。
\S 匹配任何非空白字符。与 [^ \f\n\r\t\v] 等效。
\w 匹配任何字类字符,包括下划线。与"[A-Za-z0-9_]"等效。
\W 与任何非单词字符匹配。与"[^A-Za-z0-9_]"等效。
最简单就是每个都用()包裹起来
//eg1:匹配满足的
String pattern = "(^abc)(cde$)";
Pattern compile = Pattern.compile(pattern);
Matcher matcher = compile.matcher("abcdefgcde");
boolean b = matcher.find(); //是否有满足正则的
if (b){
int i = matcher.groupCount(); //获取满足的数量
String group = matcher.group(0);//全值 abcdefgcde
String group1 = matcher.group(1); //第一个满足的
}
//eg2: 全值比较
Pattern.matches("^(abc)\d{7}", "abc48446541")