正则表达式问题:如何检查列表中的任何值是否匹配?

Ale*_*x58 1 python regex

我想创建一个匹配的RE对象,如果该字符串包含列表中的至少一个元素.

例如,如果bad_words["censored","stupid","idiot"]是列表,则RE将匹配,如果它们中至少存在其中一个.

这是我的RE: re.compile("(%s)+" % ("|".join(bad_words)), re.IGNORECASE)

问题是'youareanidiot'不匹配.我需要更改什么才能使其匹配?

Sve*_*ach 11

虽然可以用正则表达式来做到这一点,但我认为如果没有正则表达式,你会更好.要测试字符串sbad_words,你可以试试

s = s.lower()
any(bad in s for bad in bad_words)
Run Code Online (Sandbox Code Playgroud)

bad_words应该都是小写的.