我正在使用
Python在描述(字符串)中搜索一些单词(也是多标记).
要做到这一点,我正在使用这样的正则表达式
result = re.search(word, description, re.IGNORECASE)
if(result):
print ("Trovato: "+result.group())
但我需要的是在比赛前后获得前2个单词.例如,如果我有这样的事情:
Parking here is horrible, this shop sucks.
“这里是”这个词我要找的.所以在我将它与我的正则表达式匹配后,我需要在比赛之前和之后的2个单词(如果存在).
在示例中:
停车在这里很可怕,这个
“停车”,可怕,这是我需要的话.
ATTTENTION
描述cab很长,“here is”模式可以出现多次?
最佳答案 我会这样做(编辑:添加锚点以涵盖大多数情况):
(\S+\s+|^)(\S+\s+|)here is(\s+\S+|)(\s+\S+|$)
像这样你将总是有4组(可能需要修剪)具有以下行为:
>如果组1为空,则之前没有单词(组2也为空)
>如果组2为空,则之前只有一个单词(组1)
>如果第1组和第2组不为空,则它们是按顺序排列的单词
>如果第3组为空,则之后没有任何字
>如果第4组为空,则后面只有一个单词
>如果第3组和第4组不为空,则它们是按顺序排列的单词