我有类似的东西:
import re
text = 'hi this is john my name is john im bad boy'
target = 'is john'
target = target.replace(' ', '[\s\n]*')
target = re.compile(r'\b%s' % target, flags=re.I | re.X)
indices = [m.start() for m in re.finditer(target, text)]
然后我想在索引中每次出现之前和之后找到这个词(即'这个','我的'和'名称',&# 39; IM&#39)。但是,我想避免使用正则表达式直接找到单词,因为它在搜索较大的文件时太慢,如果我想找到n>每次出现目标的每一侧有1个字。所以我有索引,我希望在索引之前和之后得到单词。
答案 0 :(得分:2)
frag_list = text.split(target)
for frag in range(len(frag_list)-1):
before = frag_list[frag ].split()[-1] # Last word of left fragment
after = frag_list[frag+1].split()[0 ] # First word of right fragment
# Do what you need to with the two words.
搜索词组中的字符串。然后采取"边界"结果句子中的单词片段:
public class A {}
.
.
.
public class B {
public void test(){
A m = new A();
}
}
这有帮助吗?