Java正则表达式语法
Mark | Utility | Equivalent | Demo |
---|---|---|---|
^ | 匹配输入字符的开始位置 | ||
$ | 匹配输入字符的结束位置 | ||
or | |||
[a-z] | 所有小写 | ||
[A-Z] | 所有大写 | ||
[xyz] | [字符集合] 匹配xyz中任意一个字符 | 如yoga可匹配y | |
[^xyz] | [负值字符集合] 匹配未包含的任意字符 | 如yoga可匹配oga | |
\d和\D | 数字和非数字 | ||
\s | 匹配任何不可见字符 | [\f\n\r\t\v] | |
\S | 任何可见字符 | [^\f\n\r\t\v] | |
\w | 匹配任何unicode字符 | ||
* | 匹配前面的表达式任意次 | {0,} | zo*可匹配z,zo,zoo... |
+ | 匹配前面的表达式>0次 | {1,} | zo+可匹配zo,zoo... |
? | 匹配前面的表达式0或1次 | {0,1} | zo?可匹配z或z0 |
{n} | n是非负整数,匹配确定的n次 | o{2}不能匹配bob,但可以匹配food | |
{n,} | 至少匹配n次 | o{2,}可匹配fooooot | |
{n,m} | 匹配n到m次 | 注意n,m之间不能有空格 | |
? | 跟在其他符号后面,表示非贪婪模式(尽可能少地匹配),默认是贪婪模式 | 如对于"foooot",o+?仅匹配单个o,而o+则匹配所有o | |
. | 匹配除"\r\n"以外的任何字符 | ||
\(\) | 将\(和\)之间的内容定义为group | ||
(p) | [获取匹配] 匹配p规则,并从产生的matcher中获取pattern | 含"("的匹配符使用\\(转义 | |
(?:p) | [非获取匹配] 匹配但不获取结果 | ||
(?=p) | [正向肯定预查]在任何匹配p的字符外开始查找 | window(?!2000|98|7)能匹配win7不能匹配win10 | |
(?!p) | [正向否定预查] 在任何不匹配p的字符串中开始查找 | window(?!2000|98|7)能匹配win10不能匹配win7 |
网友评论