正则表达式
符号 | 含义 |
---|
\ | 转义字符,将下一个字符标记为一个特殊字符。 |
* | 匹配前面的子表达式零次或者多次。等价于{0,} |
+ | 匹配前面的子表达式一次或者多次。等价于{1,} |
? | 匹配前面的子表达式零次或者一次。等价于{0,1} |
{n} | 匹配前面的子表达式n次。 |
{n,m} | 匹配前面的子表达式最少n次,最多m次。 |
{n,} | 匹配前面的子表达式最少n次。 |
. | 匹配任意一个字符。 |
符号 | 含义 |
---|
^ | 在字符串开头处进行匹配。例如,“^a”匹配“apple”中的a,但是不匹配“pandas”中的a。 |
$ | 在字符串结尾处进行匹配。如上所示。 |
符号 | 含义 |
---|
x|y | 匹配x或者y的一个字符。 |
[xyz] | 匹配x、y或者z的一个字符。 |
[^xyz] | 匹配不是x、y或者z的一个字符。 |
[A-Z] | 匹配大写字母的任意字符。 |
[^A-Z] | 匹配不是大写字母的任意字符。 |
符号 | 含义 |
---|
\b | 匹配字符的边界部分。例如,“er\b”可以匹配“never”中的er,但不能匹配“verb”中的er。 |
\B | 匹配不是字符的边界部分。和上述例子相反。 |
\d | 匹配数字部分。等价于[0-9] |
\D | 匹配数字部分。等价于[^0-9] |
\s | 匹配任何空白字符,包括空格,制表符,换页符等。等价于[\f\n\r\t\v] |
\S | 匹配任何非空白字符,包括空格,制表符,换页符等。等价于[^\f\n\r\t\v] |
\w | 匹配包括下划线的任何单词字符。等价于[A-Za-z0-9_] |
\W | 匹配不包括下划线的任何单词字符。等价于[^A-Za-z0-9_] |
符号 | 含义 |
---|
(?:pattern) | 匹配pattern,结果包含pattern。例如,”industr(?:y|ies)“等价于”industry|industries“。 |
(?=pattern) | 在字符的后面匹配pattern,结果不包含pattern。例如,”Windows(?=95|98)“匹配”Windows95“中的Windows,而不匹配”Windows3.1“中的Windows。 |
(?!pattern) | 在字符的后面匹配不是pattern,结果不包含pattern。例如,”Windows(?=95|98)“匹配”Windows3.1“中的Windows,而不匹配”Windows95“中的Windows。 |
(?<=pattern) | 在字符的前面匹配pattern,结果不包含pattern。例如,”(?=95|98)Windows“匹配”95Windows“中的Windows,而不匹配”3.1Windows“中的Windows。 |
(?<!pattern) | 在字符的前面匹配不是pattern,结果不包含pattern。例如,”(?=95|98)Windows“匹配”3.1Windows“中的Windows,而不匹配”95Windows“中的Windows。 |
正则表达式其实是一个灵活运用的东西,希望这篇博客对大家有帮助。