假设我有两个陈述:
Greg Wylde hits the penalty kick with his left foot to the lower left corner and scores!!
Robin van Persie powers the penalty kick with his right foot to the upper right corner and scores!!
我想抓住
Greg Wylde
Robin van Persie
我唯一可以保证的是,每个句子在句子中都有penalty kick
,然后在那之前有两个单词(hits the
,places the
,shoots the
等等)。
基本上句子总是采用这种形式:
Name (can be n amount of words) someWord someWord penalty kick
我如何编写正则表达式来取出名称。
目前我有一些基本的内容
[^ ]* [^ ]* [^ ]*(?<=penalty)
让我到了名字后面的最后一个空格,但是我怎么告诉它在那之前抓住一切?我确信它非常简单,但我完全错过了它。
谢谢!
答案 0 :(得分:1)
答案 1 :(得分:0)
可能不是最好的正则表达式,但它应该工作。使用Regex101
进行测试.+?(?= [^ ]* [^ ]* [^ ]*(?<=penalty))
答案 2 :(得分:0)
你可以使用^(.*?) \w+ \w+ penalty
,即:
import re
sentence = "Greg Wylde hits the penalty kick with his left foot to the lower left corner and scores!!"
result = re.findall(r"^(.*?) \w+ \w+ penalty", sentence , re.DOTALL)
print result[0]
# Greg Wylde