我有這個函數解析一些內容來檢索自制鏈接標記並將其轉換爲普通鏈接標記。正則表達式 - 如何一次匹配一個模式
可能的輸入:
<p>blabalblahhh <moolinkx pageid="121">text to click</moolinkx> blablabah</p>
輸出:
<p>blabalblahhh <a href="whateverpage.htm">text to click</a> blablabah</p>
這裏是我的代碼:
$regex = '/\<moolinkx pageid="(.{1,})"\>(.{1,})\<\/moolinkx\>/';
preg_match_all($regex, $string, $matches);
它的工作原理非常清楚如果只有一個的字符串中。但只要有第二個,它就不起作用。
輸入:
<p>blabalblahhh <moolinkx pageid="121">text to click</moolinkx> blablabah.</p>
<p>Another <moolinkx pageid="128">text to clickclick</moolinkx> again blablablah.</p>
,當我的print_r($比賽)這就是我的了:
Array
(
[0] => Array
(
[0] => <moolinkx pageid="121">text to click</moolinkx> blablabah.</p><p>Another <moolinkx pageid="128">text to clickclick</moolinkx>
)
[1] => Array
(
[0] => 121">text to click</moolinkx> blablabah.</p><p>Another <moolinkx pageid="128
)
[2] => Array
(
[0] => text to clickclick
)
)
我不放心用正則表達式,所以它必須有一些很瑣碎.. ,但我無法找出它是什麼:(
非常感謝你提前
注意:這是我的在這裏第一篇文章,雖然我已經使用這個了不起的Q & A多年!
讓您的正則非貪婪。 – 2013-03-05 10:27:47