1
我想捕捉HTML中使用PHP的超鏈接的所有屬性,但我的正則表達式只返回最後一個屬性和值。PHP正則表達式只返回最後發生的重複模式?
HTML:
$string = '
<a href="http://www.example.com/" style="font-weight: bold;">Example</a>
<a href="http://www.exampletwo.com/ style="font-weight: bold;">Example Two</a>
';
正則表達式:
preg_match_all('/<a(?: (.*?)="(.*?)")*>(.*?)<\/a>/i', $string, $result);
結果:
Array
(
[0] => Array
(
[0] => <a href="http://www.example.com/" style="font-weight: bold;">Example</a>
[1] => <a href="http://www.exampletwo.com/" style="font-weight: bold;">Example Two</a>
)
[1] => Array
(
[0] => style
[1] => style
)
[2] => Array
(
[0] => font-weight: bold;
[1] => font-weight: bold;
)
[3] => Array
(
[0] => Example
[1] => Example Two
)
)
我怎樣才能得到它返回所有結果從重複模式?
()僅在您想要提取該值時才使用!使用類似:/.*? <\/>/ims –
2012-07-19 13:06:27
重複捕獲組只捕獲最後一場比賽。 – nickb 2012-07-19 13:08:55