在Python字符串中转义正则表达式特殊字符


问题内容

Python是否具有可用来在正则表达式中转义特殊字符的函数?

例如,I'm "stuck" :\应成为I\'m \"stuck\" :\\


问题答案:

采用 re.escape

>>> import re
>>> re.escape(r'\ a.*$')
'\\\\\\ a\\.\\*\\$'
>>> print(re.escape(r'\ a.*$'))
\\\ a\.\*\$
>>> re.escape('www.stackoverflow.com')
'www\\.stackoverflow\\.com'
>>> print(re.escape('www.stackoverflow.com'))
www\.stackoverflow\.com

在这里重复:

re.escape(字符串)

返回所有非字母数字加反斜杠的字符串;如果您要匹配一个可能包含正则表达式元字符的任意文字字符串,这将很有用。

从Python 3.7re.escape()开始,更改为仅转义对正则表达式操作有意义的字符。