Python 精确匹配字符串
Python match string to string exactly
给定一个字符串,我想确定其中是否包含两个字符串。例如,给定 "The dog barks loudly .",我想搜索 "dog" 和 "barks loudly"。但是,如果句子是 "The dogged man .",我不想将 'dog' 匹配到 'dogged'。
我正在使用以下内容:
if re.search(r'\s'+word+'\s', str1) and re.search(r'\s'+otherWord+'\s', str1) and word != otherWord:
我的问题是 1. 如果每个标点符号前面都有一个 space,我的方法行得通吗? 2. 有没有更好的方法,这样我就不必对字符串进行预处理以在每个标点符号前放置一个 space?
您可以使用单词边界 \b
(匹配单词字符和非单词字符)而不是 space \s
.您还需要将所有正则表达式模式定义为原始字符串。
if re.search(r'\b'+word+r'\b', str1) and re.search(r'\b'+otherWord+r'\b', str1) and word != otherWord:
给定一个字符串,我想确定其中是否包含两个字符串。例如,给定 "The dog barks loudly .",我想搜索 "dog" 和 "barks loudly"。但是,如果句子是 "The dogged man .",我不想将 'dog' 匹配到 'dogged'。
我正在使用以下内容:
if re.search(r'\s'+word+'\s', str1) and re.search(r'\s'+otherWord+'\s', str1) and word != otherWord:
我的问题是 1. 如果每个标点符号前面都有一个 space,我的方法行得通吗? 2. 有没有更好的方法,这样我就不必对字符串进行预处理以在每个标点符号前放置一个 space?
您可以使用单词边界 \b
(匹配单词字符和非单词字符)而不是 space \s
.您还需要将所有正则表达式模式定义为原始字符串。
if re.search(r'\b'+word+r'\b', str1) and re.search(r'\b'+otherWord+r'\b', str1) and word != otherWord: