6. 转义字符

在正则表达式中会用到很多特殊字符,当我们将这些特殊字符当成普通字符来用的时候就需要转义。

正则中的转义符号和 Python 中的转义符号相同,都是反斜杠 \

比如当我们匹配一个网站,他的名字是weimingze.com 和 weimingze_com 这时候要能正确的匹配到 域名中的 . 此时正则中要使用 \. 来将特殊字符 . 转义成为普通的 点.

示例:

>>> s4 = 'weimingze.com; weimingze_com'
>>> re.findall(r'\w+.\w+', s4)
['weimingze.com', 'weimingze_com']
>>>
>>> re.findall(r'\w+\.\w+', s4)
['weimingze.com']

可见 在正则表达式 r'\w+.\w+' 中,. 可以匹配任意字符, 在正则表达式 r'\w+\.\w+' 中,. 只能匹配 . 这个字符。

需要转义的字符

正则中的常用的特殊字符在当成普通字符使用时都需要转义。这些字符有

. ( ) {} [ ] * + ? ^ $ |

部分需要转义的符号(要看应用的场景)

- ,

部分特殊字符

\s  \S  
\w  \W
\d  \D
\b  \B
\n  \t  \v  \f  \r  \\(反斜杠自身)