在句子中查找单词的出现
问题描述:
我想查找某个单词中某个单词的出现次数,然后将其删除。我能够做到这一点,但有时我想删除的词可能是一个子词。例如,我想在“音乐是全世界的”一句中找到/删除“单词”一词。我的程序将查找/删除返回一个正值,它在句子中找到单词“单词”,而实际上它遇到了单词“全球”,我希望它返回一个负值。 我目前使用在句子中查找单词的出现
index = text.find(word)
是否有任何其他的方式来避免被这个词一个句子中的子词的这个问题呢?先谢谢你!
答
您可以使用正则表达式模块,并依赖正则表达式的字边界(\b
)仅匹配整个单词。
既然你想从句子中删除字,下面是替换所有与空字符串匹配的例子:
import re
sentence = 'Music world is worldwide'
word = 'world'
removed = re.sub(r'\b%s\b' % word, '', sentence)
print removed # prints "Music is worldwide"
如果你只是想找到第一个出现的位置,您可以按如下做到这一点:
import re
sentence = 'Music is worldwide in the world'
word = 'world'
match = re.search(r'\b%s\b' % word, sentence)
if match:
print match.start() # prints 26
检查re
模块的详细信息的文档。
答
我想添加一个空格字即组成:
word = " "+ word
index = text.find(word)
,但我不知道是否有这样做更有效和更清洁的方式。