如何解决正则表达式问题:如何检查列表中的任何值是否匹配?
| 我想创建一个RE对象,如果字符串包含列表的至少一个元素,则该对象匹配。 例如,如果列表为“ 0”,则如果存在至少一个RE,则RE将匹配。 这是我的RE:re.compile(\"(%s)+\" % (\"|\".join(bad_words)),re.IGNORECASE)
问题是\'youareanidiot \'不匹配。为了使其匹配,我必须更改什么?
解决方法
您正在使用重新匹配吗?尝试重新搜索。请参阅Python正则表达式文档中的匹配与搜索。
import re
bad_words = [\"stupid\",\"idiot\"]
regex = re.compile(\"|\".join(re.escape(word) for word in bad_words),re.IGNORECASE)
print regex.search(\'youareanidiot\').group()
# prints \"idiot\"
, 尽管可以使用正则表达式来做到这一点,但我认为最好不要使用正则表达式。要针对bad_words
测试字符串s
,请尝试类似
s = s.lower()
any(bad in s for bad in bad_words)
您的bad_words
应该全部小写。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。