正则表达式
正则表达式的模式可以包括以下内容:
-
字面值字符:例如字母、数字、空格等,可以直接匹配它们自身。
-
特殊字符:例如点号 .、星号 *、加号 +、问号 ? 等,它们具有特殊的含义和功能。
-
字符类:用方括号 [ ] 包围的字符集合,用于匹配方括号内的任意一个字符。
-
元字符:例如 \d、\w、\s 等,用于匹配特定类型的字符,如数字、字母、空白字符等。
-
量词:例如 {n}、{n,}、{n,m} 等,用于指定匹配的次数或范围。
-
边界符号:例如 ^、$、\b、\B 等,用于匹配字符串的开头、结尾或单词边界位置。
| 模式 | 描述 |
| ^ | 匹配字符串的开头。 |
| $ | 匹配字符串的末尾。 |
| . | 匹配除了换行符(\n 、\r) 之外任意单个字符。 |
| [ ] | 匹配括号内的任意一个字符, 例如,[abc] 匹配字符 "a"、"b" 或 "c"。 |
| [^ ] | 匹配除了括号内的字符以外的任意一个字符, 例如,[^abc] 匹配除了字符 "a"、"b" 或 "c" 以外的任意字符。 |
| * | 匹配前面的模式零次或多次。 |
| + | 匹配前面的模式一次或多次。 |
| ? | 匹配前面的模式零次或一次。 |
| {n} | 匹配前面的模式恰好 n 次。 |
| {n,} |
匹配前面的模式至少 n 次。例如,"o{2,}"不能匹配"Bob"中的"o",但能匹配"foooood"中的所有o,"o{1,}"等价于"o+","o{0,}"则等价于"o*"。 |
| {n, m} | 匹配前面的模式至少 n 次且不超过 m 次。 |
| a|b | 匹配a或b, 用于指定多个模式的选择。 |
| ( ) | 匹配括号内的表达式,用于分组和捕获子表达式。 |
| (?: ) | 与 ( )类似, 用于分组但不捕获子表达式。 |
| (?= ) | 正向肯定预查,exp1(?=exp2):查找 exp2 前面的 exp1。 |
| (?<= ) | 反向肯定预查,(?<=exp2)exp1:查找 exp2 后面的 exp1。 |
| (?! ) | 正向否定预查,exp1(?!exp2):查找后面不是 exp2 的 exp1。 |
| (?<! ) | 反向否定预查,(?<!exp2)exp1:查找前面不是 exp2 的 exp1。 |
| \ | 转义字符,用于匹配特殊字符本身。 |
| \cx |
匹配由x指明的控制字符。例如, \cM 匹配一个 Control-M 或回车符。x 的值必须为 A-Z 或 a-z 之一。否则,将 c 视为一个原义的 'c' 字符。 |
| \f | 匹配一个换页符。等价于 \x0c 和 \cL。 |
| \n | 匹配一个换行符。等价于 \x0a 和 \cJ。 |
| \r | 匹配一个回车符。等价于 \x0d 和 \cM。 |
| \t | 匹配一个制表符。等价于 \x09 和 \cI。 |
| \v | 匹配一个垂直制表符。等价于 \x0b 和 \cK。 |
| \s | 匹配任意空白字符,包括空格、换行符等,等价于 [ \f\n\r\t\v]。 注意 Unicode 正则表达式会匹配全角空格符。 |
| \S | 匹配任意非空字符,等价于 [^\f\n\r\t\v]。 |
| \w | 匹配数字字母下划线,等价于'[A-Za-z0-9_]'。 |
| \W | 匹配非数字字母下划线,等价于 '[^A-Za-z0-9_]'。 |
| \d | 匹配任意数字,等价于 [0-9] |
| \D | 匹配任意非数字,等价于 [^0-9]。 |
| \A | 匹配字符串开始 |
| \z | 匹配字符串结束 |
| \Z | 匹配字符串结束,如果是存在换行,只匹配到换行前的结束字符串。 |
| \G | 匹配最后匹配完成的位置。 |
| \b | 匹配一个单词边界,也就是指单词和空格间的位置。例如, 'er\b' 可以匹配"never" 中的 'er',但不能匹配 "verb" 中的 'er'。 |
| \B | 匹配非单词边界。'er\B' 能匹配 "verb" 中的 'er',但不能匹配 "never" 中的 'er'。 |
浙公网安备 33010602011771号