正则表达式
符号的作用
符号 | 描述 |
^ |
^在[]内,匹配非。 ^在[]外,匹配开头。 |
$ | 匹配结尾 |
. | 匹配任意字符(除了\r\n) |
| | 或 |
\? | 只匹配字符 ? |
\. | 只匹配字符 . |
\ | 如上在正则里由特殊意义的字符(元字符),如果只想匹配字符本身,需要转义一下 |
n* | 等价于 n{0,} |
n+ | 等价于 n{1,} |
n? | 等价于 n{0,1} |
n{x,y} | 匹配x到y个 |
[abc] | 匹配abc任意一个字符,等价于 a|b|c |
[^abc] | 匹配除 a|b|c 外的任意一个字符 |
[a-z] | 匹配a到z范围内的任意一个字符 |
(abc|efg) | 匹配abc或efg这个整体 |
\d | 匹配数字,等价于 [0-9] |
\D | 匹配非数字,等价于 [^0-9] |
\w | 匹配单词字符,基本等价于 [a-zA-Z_0-9] |
\W | 匹配非单词字符,[^a-zA-Z_0-9] |
\s | 匹配空白字符(空格、制表符、换页符等),等价于 [\f\n\r\t\v] |
\S | 匹配非空白字符,等价于 [^\f\n\r\t\v] |
\b | 匹配一个单词边界,也就是指单词和空格间的位置(即正则表达式的“匹配”有两种概念,一种是匹配字符,一种是匹配位置,这里的\b就是匹配位置的)。例如,“er\b”可以匹配“never”中的“er”,但不能匹配“verb”中的“er”。 |
\B | 匹配非单词边界。“er\B”能匹配“verb”中的“er”,但不能匹配“never”中的“er”。 |
\f | 匹配换页符 |
\n | 匹配换行符 |
\r | 匹配回车符 |
\t | 匹配制表符 |
\v | 匹配垂直制表符 |
() | 子表达式、分组。要是加上全局 g ,就匹配不到子表达式了 |