Regular Expression Tutorial
Regex 101: 在线测试正则表达式的网站
匹配
^: 匹配输入字符串开始位置$: 匹配输入字符串结束位置\b: 匹配单词边界。例如er\b: 可以匹配 “never” 中的 “er” 而不能匹配 “verb” 中的 “er”\B: 匹配非单词边界,与\b相反\n: 匹配换行符\r匹配回车符\t: 匹配制表符\s: 匹配任何空白字符。包括空格、制表符、换页符等。\S: 匹配任何非空白字符.: 匹配除\r和\n以外的任何单个字符\d: 匹配数字字符\D: 匹配非数字字符\w: 匹配包括下划线在内的任何字母与数字字符\W: 与\w相反[\u4e00-\u9fa5]: 匹配中文字符[^\x00-\xff]: 匹配双字节字符(包括中文)
重复
*: 匹配前面的表达式零次或多次+: 匹配前面的表达式一次或多次?: 匹配前面的表达式零次或一次{n}: 匹配前面的表达式 n 次{n,}: 匹配前面的表达式至少 n 次{n,m}: 匹配前面的表达式最少 n 次,最多 m 次
特殊
\: 转义字符,将下一个字符标记为一个特殊字符?: 非贪心量化。当该字符跟在任何一个重复修饰符后时,匹配尽可能少的字符串(pattern): 匹配并获取字符串,用于向后引用。默认情况下,每个分组按照从左往右的规则依次分配组号为 1,2,3 等。之后使用\1来代表分组 1 匹配的文本。(?:pattern): 非获取匹配,括号只做优先级分组(?<name>pattern): 匹配并将组名设置为 name(?=pattern): 匹配 pattern 之前的位置(?!pattern): 匹配非 pattern 之前的位置(?<=pattern): 匹配 pattern 之后的位置(?<!pattern): 匹配非 pattern 之后的位置|: 或[xyz]: 匹配所包含的任意一个字符[^xyz]: 匹配未列出的任意字符[a-z]: 匹配指定范围内的任意字符[^a-z]: 匹配未在指定范围内的任意字符