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

发布于 2021-02-02 23:20:55

我想使用来自用户的输入作为正则表达式模式来搜索某些文本。它可以工作,但是我该如何处理用户在正则表达式中放置有意义的字符的情况?例如,用户要搜索Word (s):正则表达式引擎会将(s)分组。我希望它像对待字符串一样对待它"(s)"。我可以replace在用户输入上运行并将(with \()with 替换,\)但是问题是我将需要对每个可能的正则表达式符号进行替换。你知道更好的方法吗?

关注者
0
被浏览
169
1 个回答
  • 面试哥
    面试哥 2021-02-02
    为面试而生,有面试问题,就找面试哥。

    使用此re.escape()功能:

    4.2.3 re模块内容

    转义(字符串)

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

    一个简单的示例,搜索提供的字符串的任何出现情况(可选)后跟“ s”,然后返回匹配对象。

    def simplistic_plural(word, text):
        word_or_plural = re.escape(word) + 's?'
        return re.match(word_or_plural, text)
    


知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看