如何使用正则表达式从文本中查找特定单词并返回所有出现的单词?

Thi*_*yen 4 python regex

就像问题标题一样.

我是Python和正则表达式的新手.因此,我必须从段落中搜索特定单词并显示所有出现的索引.

例如:

该段是:

这是一个测试文本,用于测试和测试.

和这个词:

测试

算法应返回上段中3个单词test的非重叠出现的索引(但不测试,因为我的意思是搜索整个单词,而不仅仅是子字符串).

另一个带有相同段落和这个"单词"的例子:

测试和

该算法应返回2次测试和.

我想我必须使用一些正则表达式来找到整个单词的模式,前后都是标点符号 . , ; ? -

谷歌搜索后,我发现re.finditer应该使用的东西,但似乎我没有找到正确的方法去.请帮忙,提前谢谢.;)

slo*_*oth 6

是的,finditer是要走的路.使用start()查找匹配的索引.


例:

import re

a="This is a testing text and used to test and test and test."
print [m.start() for m in re.finditer(r"\btest\b", a)]
print [m.start() for m in re.finditer(r"\btest and\b", a)]
Run Code Online (Sandbox Code Playgroud)

输出:

[35,44,53]
[35,44]