python - 从字符串中排除列表中出现的单词

标签 python regex

我有这样的列表:

stopwords = ['a', 'and', 'is']

还有这样的句子:

sentence = 'A Mule is Eating and drinking.'

预期输出:

reduced = ['mule', 'eating', 'drinking']

到目前为止我已经:

reduced = filter(None, re.match(r'\W+', sentence.lower()))

现在如何过滤掉停用词(注意大写到小写的转换以及标点符号的省略)?

最佳答案

过滤器表达式错误。将其更改为:

>>> reduced = filter(lambda w: w not in stopwords, re.split(r'\W+', sentence.lower()))

第一个参数是过滤条件。另请注意,要分割句子,您需要 re.split 而不是 re.match

>>> list(reduced)
['mule', 'eating', 'drinking']

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

相关文章:

python - 我可以在按钮内创建 Canvas 吗?

python - 按行在另一个数组中搜索一个数组的元素 - Python/NumPy

java - 如何通过正则表达式防止感叹

regex - 在Notepad++中,在行尾添加每行的文本

python - 如何将 HTML 类添加到 Django 表单的帮助文本?

python - DataFrame 列的一个元素与所有其他元素之间的比较

python - numpy.insert 问题

javascript - javascript中应该使用什么正则表达式来匹配字符串中不包含两个点在一起

java - 索引 65 处的路径中存在非法字符异常 [ java ]

regex - grep 有效域正则表达式