我有一个html页面的代码
在这个页面中有几行如下:
<p class="stName ico01">Some text</p>
<p class="stName ico02">Some other thext</p>
我需要捕捉“一些文字”和“其他一些文字”,我只想用一个正则表达式来做这件事。
如果我在标签中只有ico01,我可以使用
preg_match_all('/ico01">(.*?)<\/p>/',$page,$matches);
我怎么能对正则表达式说:“把所有东西都拿到(ico01或ico02)之间,以&lt; / p&gt;”结束?
答案 0 :(得分:1)
尝试
preg_match_all('/ico0(1|2)">(.*?)<\/p>/',$page,$matches);
答案 1 :(得分:0)
试试这个:
preg_match_all('#<p class="stName ico\d\d">([^<]+)</p>#', $page, $matches);
但是我必须添加:不要用RegEx解析HTML!
答案 2 :(得分:0)
使用:
preg_match_all('/ico0[12]">(.*?)<\/p>/', $page, $matches);
您可以将其扩展为:
preg_match_all('/ico[0-9]{2}">(.*?)<\/p>/', $page, $matches);
匹配00到99之间的所有类。