python - 从 python 列表中删除字符串中所有出现的单词

标签 python regex

我正在尝试使用编译后的正则表达式从字符串中匹配和删除列表中的所有单词,但我正在努力避免在单词中出现。

当前:

 REMOVE_LIST = ["a", "an", "as", "at", ...]

 remove = '|'.join(REMOVE_LIST)
 regex = re.compile(r'('+remove+')', flags=re.IGNORECASE)
 out = regex.sub("", text)

在:“敏捷的棕色狐狸跳过一只 Ant ”

输出:“快速的棕色狐狸跳过了 t”

预期:“快速的棕色狐狸跳过了”

我尝试更改字符串以编译为以下内容但无济于事:

 regex = re.compile(r'\b('+remove+')\b', flags=re.IGNORECASE)

有什么建议还是我遗漏了一些非常明显的东西?

最佳答案

这里有一个不使用正则表达式的建议,您可能需要考虑:

>>> sentence = 'word1 word2 word3 word1 word2 word4'
>>> remove_list = ['word1', 'word2']
>>> word_list = sentence.split()
>>> ' '.join([i for i in word_list if i not in remove_list])
'word3 word4'

关于python - 从 python 列表中删除字符串中所有出现的单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15435726/

相关文章:

c - 如何制作用于处理源文件的正则表达式,其中搜索模式是根据函数名称构建的?

python - 如何标准化 HSV 值。 Python

python - PyObject_GetAttrString C++ 函数返回 NULL : Unable to call Python functions from C++

python - 是否可以在不替换变量的情况下加载 jinja2 模板?

regex - 如何在 Perl 中将我想要的东西与我不需要的东西分开?

r - 提取与模式匹配的特定单词

javascript - 正则表达式中的否定

python - 将 cookiecutter-django 和 gunicorn 部署到 digital ocean 的 Production.py 问题

Python3 列表理解没有按预期工作

python - 匹配同一字符串中的多个结果