如何在PHP中使用Regex获取未知单词之前的单词

时间:2014-09-17 00:47:51

标签: php regex word preg-match-all

我有这样的文字:

andres wins Pot (9.50) with a Full House

我希望得到“andres”这个词。这是一个玩家名称(变量),始终显示在单词“wins”之前。

我需要使用preg_match_all函数,我正在尝试:

%(?:\S+\s)?\S*wins%

但它让我回答:

andres wins

我只需要,andres。

谢谢!

2 个答案:

答案 0 :(得分:2)

使用捕获组而不是非捕获组。这应该足以匹配前面的单词。

(\w+)\s*wins

您需要引用$matches[1]来返回匹配结果。

答案 1 :(得分:0)

(\w+)(?=\s*wins)

你也可以使用它。抓住比赛[1]。这不会捕获任何其他内容。参见演示。

http://regex101.com/r/xO7bK2/1