给定一个字符串,我想确定是否有两个字符串。例如,给出"狗大声吠叫。",我想搜索" dog"并且"大声咆哮"。如果句子是"那个顽固的男人。"但是,我不想匹配“狗”#39;顽固地#39;
我使用以下内容:
if re.search(r'\s'+word+'\s', str1) and re.search(r'\s'+otherWord+'\s', str1) and word != otherWord:
我的问题是1.如果每个标点符号都有空格,我的方法会起作用吗? 2.有没有更好的方法来做到这一点,以便我不必预先处理字符串,在每个标点符号前放置一个空格?
答案 0 :(得分:3)
您可以使用单词边界\b
(在单词字符和非单词字符之间匹配)而不是空格\s
。此外,您还需要将所有正则表达式模式定义为原始字符串。
if re.search(r'\b'+word+r'\b', str1) and re.search(r'\b'+otherWord+r'\b', str1) and word != otherWord: