我正在尝试制作一个简单的 python 脚本来检查 RSS 提要中的坏词。提要本身工作得很好,这个复制粘贴也适用于一个坏词,但我没有时间检查多个词。
我曾尝试将变量 badword 列为一个列表,例如:
badword = ["badword", "badderword"]
但我明白了
TypeError: 'in ' 需要字符串作为左操作数,而不是列表。
我也尝试使用“如果有”,但恐怕我也没有正确使用。
feed = "emulating rss feed test ok badword"
badword = "bad"
print("Feed: " + feed)
print("Bad word: " + str(badword))
if badword not in feed:
print("Not bad")
else:
print("Is bad")
您可以any
用于检查提要中是否有任何这些坏词:
>>> feed = "emulating rss feed test ok badword"
>>> badword = ["badword", "badderword"]
>>> any(bw in feed for bw in badword)
True
但是如果一个坏词是一个非坏词的一部分,这可能会失败:
>>> feed = "emulating rss feed test ok notreallyabadword"
>>> any(bw in feed for bw in badword)
True
相反,我建议使用正则表达式,将坏词与 连接|
起来并用词边界字符 分隔它们\b
。这也适用于标点符号。
>>> import re
>>> p = r"\b" + "|".join(badword) + r"\b"
>>> re.search(p, feed) is not None
False
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句