這結(jié)果是怎么回事…
<?php
$str = "<ul>
? ? ? ? ? ? <li>item 1</li>
? ? ? ? ? ? <li>item 2</li>
? ? ? ? </ul>";
$p='!<ul>[^\.]+<li>(.*)</li>[^\.]+</ul>!i';//在這里補充代碼,實現(xiàn)正則匹配所有l(wèi)i中的數(shù)據(jù)
preg_match($p,$str,$matches);
print_r($matches);
echo "\n";
print_r($matches[1]);
2016-09-02
Array
(
? ?[0] => Array
? ? ? ?(
? ? ? ? ? ?[0] =>item 1[1] =>item 2)
? ?[1] => Array
? ? ? ?(
? ? ? ? ? ?[0] => item 1
? ? ? ? ? ?[1] => item 2
? ? ? ?)
)
原來是輸出的問題,我原來的代碼只是輸出下標為一的
2016-09-02
對啊,為什么他沒匹配
item 1</li>
? ? ? ? ? ? <li>item 2這一部分
2016-09-02
不是這樣的,他是匹配了<li></li>里面的部分啊,并不是<ul><li> ?</li></ul>的部分
2016-09-02
你這寫法匹配的位置不對
2016-09-02
得到的是
item 1</li>
? ? ? ? ? ? <li>item 2
,item 2
2016-09-02
這里是不是(.*?)值匹配為item 2了。 ?
開頭的<ul>[^\.]+直接化為XXXitem1XX然后接(.*?)了