用Python转义正则字符串我想使用用户输入作为对某些文本进行搜索的regex模式。它可以工作,但是如何处理用户在regex中放置有意义的字符的情况?例如,用户希望搜索Word。(s)*regex引擎将采取(s)作为一个团体。我要把它当作一根绳子"(s)"..我能跑replace在用户输入和替换(带着\(而)带着\)但问题是,我需要对每一个可能的正则表达式符号进行替换。你知道更好的方法吗?
3 回答
宝慕林4294392
TA贡献2021条经验 获得超8个赞
re.escape()
>>> re.sub('a', re.escape('_'), 'aa')'\\_\\_'
>>> re.sub('a', lambda _: '_', 'aa')'__'
re.sub()
MM们
TA贡献1886条经验 获得超2个赞
re.escape()
转义(字符串)
返回带有所有非字母数字反斜杠的字符串;如果要匹配可能包含正则表达式元字符的任意文字字符串,这是非常有用的。
def simplistic_plural(word, text): word_or_plural = re.escape(word) + 's?' return re.match(word_or_plural, text)
添加回答
举报
0/150
提交
取消