【发布时间】:2021-09-07 08:34:47
【问题描述】:
当gun store之前出现local这个词时,我需要提取它。但是,由于使用了拆分,下面的函数没有返回它。有没有办法解决这个问题?
消息来源如下:据 2019 年 12 月 30 日报道,在都会区迈普,一群至少 10 名暴徒企图抢劫当地一家枪支商店。
函数如下:
regex_filter = r'local|dozen|several|looted'
property_key = r"\b(gun store|establishments|supermarket)\b"
source= source.split()
for i, w in enumerate(source):
if (re.search(property_key, w)):
if re.match(re.compile(regex_filter, flags=re.IGNORECASE), source[i-1]):
return source[i-1]```
【问题讨论】:
-
您在寻找什么“方式”?为什么不使用
(\S+)\s+(?:gun store|establishments|supermarket)\b -
嗨@WiktorStribiżew,感谢您在这里的帮助,但它不起作用,我认为问题是由分裂引起的,它试图分别匹配枪和存储
-
这也是我要说的。为什么不使用
m = re.search(r'(\S+)\s+(?:gun store|establishments|supermarket)\b', text),然后使用if m: print(m.group(1))?见ideone.com/lxygzY -
当然@WiktorStribiżew,会这样做的。
标签: python regex split re text-extraction