我需要多次捕获某个模式,同时还要记住之前,之后和之间的内容。例如:多个正则表达式捕获
一些文本“被捕获”一些文字“被捕获”一些 文字
这是可以预见的是界定文本标记被捕获的唯一的东西。捕获的文本本身每次都不相同。最后,我需要把CSS跨度围绕这些拍摄的部分,像这样
some text <span class="a">"to be captured"</span> some more text <span
class="a">"to be captured"</span> some more text
我试图
if (preg_match("/(.*?)(\".*?\")(.*)/", $line, $m)
$res .= $m[1] . '<span class="a">' . $m[2] . '</span>' . $m[3];
它适用于只有一个捕捉线路。使用preg_match_all并不能解决这个问题,可能我也必须更改正则表达式本身,但我不知道如何。
这将匹配''一些更多的文本'',这是无意的。 – Grilse 2012-02-04 21:39:22
@Grilse它不是从问题开始。 '唯一可以预测的是划定要捕获的文本的标记。' – Cheery 2012-02-04 21:42:16
让我改述一下: 如果有两个以上的分隔符,那么这也将与分隔符2和3之间的任何文本匹配,这是无意识的。 – Grilse 2012-02-04 21:54:57