我正在尝试从以下字符串返回dolor sit amet
-
$title = 'Lorem ipsum dolor sit amet';
preg_match('/^(?:\w+\s+){2}(.)+/', $title, $matches);
它只匹配最后一个字母。
答案 0 :(得分:3)
您需要将重复运算符放在组中:
preg_match('/^(?:\w+\s+){2}(.+)/', $title, $matches);
否则,该组只捕获一个角色。
答案 1 :(得分:2)
试试这个:
^(?:\w+\s+){2}(.+)$
将加号放在捕获组之外:(.)+
,与原始代码一样,将捕获 - 可能 - 多个实例 个人字符 ,当你想要捕获时,则是一个多个字符的单个实例。
你只捕捉最后一个角色,而不是最后三个单词,因为它正在捕捉然后“扔掉”所有这些角色......
dolor sit ame
一个接一个,最后捕获并返回最后一个t
。