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 |