我正在尝试从一个大字符串中匹配一个字符串。
例子
“快棕色狐狸在这里,但快棕色狐狸也总是在那里”
preg_match('(quick brown fox(.+?)too)',$txt,$match)
问题是它抓住了整个句子而不是“quick brown fox always over there too”
我如何只抓住第二部分?..当相似的字符串在一行左右时会发生这种情况......
我正在尝试从一个大字符串中匹配一个字符串。
例子
“快棕色狐狸在这里,但快棕色狐狸也总是在那里”
preg_match('(quick brown fox(.+?)too)',$txt,$match)
问题是它抓住了整个句子而不是“quick brown fox always over there too”
我如何只抓住第二部分?..当相似的字符串在一行左右时会发生这种情况......
非贪婪仅应用于模式的末尾(实际上,这意味着如果 prce 找到匹配项,则不寻找更大的匹配项,只是返回),所以:
“狐狸精也在这里,而且总是在那里”
preg_match('(quick brown fox(.+?)too)', $txt, $match)
只会匹配“quick brown fox is here too” - 但没有,你在找什么。
也许你可以用strrev()
& 写一个反转的模式来反转你的 $txt,而不是反转你的匹配,但它只会解决这个特定的问题。
您在这里有 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
此外,您的正则表达式中缺少两个正斜杠。