Python:动态构建正则表达式的最佳实践

标签 python regex

<分区>

我有一个简单的函数可以从某些文本中删除“单词”:

def remove_word_from(word, text):
    if not text or not word: return text
    rec = re.compile(r'(^|\s)(' + word + ')($|\s)', re.IGNORECASE)    
    return rec.sub(r'\1\3', text, 1)    

当然,问题在于,如果单词包含诸如“(”或“)”之类的字符,事情就会中断,而且在正则表达式中间插入一个随机单词通常似乎是不安全的。

处理此类案例的最佳做法是什么?有没有方便、安全的函数我可以调用来转义“单词”以便安全使用?

最佳答案

您可以使用re.escape(word) 来转义单词。

关于Python:动态构建正则表达式的最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4807141/

相关文章:

python - Python中的整数到十六进制的转换

c# - 嵌套方法?它们为什么有用?

python - django-sendgrid-v5 一切似乎都正常,但邮件没有送达

java - 如何替换 Java 中的所有组出现?

javascript 合并正则表达式

regex - 如何使用 sed *返回* *仅*第 n 次出现的正则表达式匹配?

python - 由于递归,hackerrank 密码破解器超时

python - swig 生成的代码链接到错误的 python 安装

javascript - 匹配任何不是字符串 "ABCD"的正则表达式

Ruby 正则表达式将十进制数与百分比和仅十进制数匹配