如何将替代品放入正则表达式?

时间:2012-02-23 12:41:53

标签: php regex

我有一个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;”结束?

3 个答案:

答案 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之间的所有类。