符号的作用
符号 | 描述 |
^ |
^在[]内,匹配非。 ^在[]外,匹配开头。 |
$ | 匹配结尾 |
. | 匹配任意字符(除了 ) |
| | 或 |
? | 只匹配字符 ? |
. | 只匹配字符 . |
如上在正则里由特殊意义的字符(元字符),如果只想匹配字符本身,需要转义一下 | |
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 v] |
S | 匹配非空白字符,等价于 [^f v] |
匹配一个单词边界,也就是指单词和空格间的位置(即正则表达式的“匹配”有两种概念,一种是匹配字符,一种是匹配位置,这里的就是匹配位置的)。例如,“er”可以匹配“never”中的“er”,但不能匹配“verb”中的“er”。 | |
B | 匹配非单词边界。“erB”能匹配“verb”中的“er”,但不能匹配“never”中的“er”。 |
f | 匹配换页符 |
匹配换行符 | |
匹配回车符 | |
匹配制表符 | |
v | 匹配垂直制表符 |
() | 子表达式、分组。要是加上全局 g ,就匹配不到子表达式了 |