使用PHP在字符串中从第三个单词开始匹配

时间:2014-03-20 03:52:01

标签: php regex

我正在尝试从以下字符串返回dolor sit amet -

$title = 'Lorem ipsum dolor sit amet';
preg_match('/^(?:\w+\s+){2}(.)+/', $title, $matches);

它只匹配最后一个字母。

2 个答案:

答案 0 :(得分:3)

您需要将重复运算符放在组中:

preg_match('/^(?:\w+\s+){2}(.+)/', $title, $matches);

否则,该组只捕获一个角色。

答案 1 :(得分:2)

试试这个:

^(?:\w+\s+){2}(.+)$

Regular expression visualization

Debuggex Demo

将加号放在捕获组之外:(.)+,与原始代码一样,将捕获 - 可能 - 多个实例 个人字符 ,当你想要捕获时,则是一个多个字符的单个实例

你只捕捉最后一个角色,而不是最后三个单词,因为它正在捕捉然后“扔掉”所有这些角色......

dolor sit ame

一个接一个,最后捕获并返回最后一个t