在python使用正则表达式需要考虑两种转义字符(两个层次):
- 字符串中的转义字符
- 正则表达式中的转义字符
即我们在python中使用字符串对正则表达式进行表达,而python字符串的表示与字符串本身是有区别的,即存在特殊字符,比如字符串"\\"
实际上表达的是特殊字符\
。若我们想构造的正则表达式\n
,我们的字符串应当写作"\\n"
。
即我们在构造完python正则表达式之后还要考虑如何用字符串将其表示出来。一般,我们会在表达正则表达式时在对应的字符串前加上一个r
(大小写均可),表示原始字符串(有的字符串都是直接按照字面的意思来使用,没有转义特殊或不能打印的字符,除用于包裹字符串的引号仍需转义,否则无法区分字符串的结束)。例如:
str = r'"\n"'
等同于:
str = '"\\n"'
其表达的字符串均为"\n"
(包含双引号)
当然,若字符串中包含用于包裹字符串的引号,则仍需转义字符,如字符串由单引号包裹,则字符串中的单引号仍需转义,如:
str = r'\'\''