我正在尝试匹配大字符串中的字符串。
例如
“快速的棕色狐狸在这里,但快速的棕色狐狸总是在那里”
preg_match('(quick brown fox(.+?)too)',$txt,$match)
问题是它抓住了整个句子,而不是“快速的棕色狐狸总是在那里”
我如何只抓住第二部分?...当一行中有相似的字符串在一起时会发生这种情况......
答案 0 :(得分:1)
这里有2个捕获组。您的$match
数组将包含..
[0] => quick brown fox is here but quick brown fox always over there too
[1] => quick brown fox is here but quick brown fox always over there too
[2] => is here but quick brown fox always over there
另外,你在正则表达式中缺少两个正斜杠。
答案 1 :(得分:1)
非贪婪仅应用于模式的 end (实际上,这意味着,如果prce找到匹配项,不寻找更大的匹配项,只返回),所以:
“快速的棕色狐狸也在这里,也总是在那里”
preg_match('(quick brown fox(.+?)too)', $txt, $match)
只匹配“快速棕色狐狸也在这里” - 但没有,你正在寻找什么。
也许你可以用strrev()
&转换你的$ txt。写一个反转的模式,而不是反转你的匹配,但它只会解决这个特定的问题。