繁体   English   中英

使用正则表达式在HTML标签之间提取数据

[英]Extracting data between HTML tags using regular expression

使用正则表达式在HTML标签之间提取数据

我有这个示例,该示例成功地从名称中获取值并将其放入三个不同的数组中

$str = '<ul>
<li><a name="valuehere1" title="titlehere" href="/channel/london/">Link1</a></li>
<li><a name="valuehere2" title="titlehere" href="/channel/games/">Link1</a></li>
<li><a name="valuehere3" title="titlehere" href="/channel/sport/">Link1</a></li>
</ul>';

preg_match_all('/<li><a name="(.*)" title/', $str, $m);
print_r($m);

我对下面的代码不太满意。 我正在尝试提取<ul class="statelist">(.*) </ul>之间的所有数据<ul class="statelist">(.*) </ul> 标签,但它只是返回两个空数组

$data = '<ul class="statelist">
                <li><a href="http://www.mymovingreviews.com/usa/alabama-movers-al-1">Alabama (45)</a></li>
                <li><a href="http://www.mymovingreviews.com/usa/alaska-movers-ak-2">Alaska (4)</a></li>
                <li><a href="http://www.mymovingreviews.com/usa/arizona-movers-az-3">Arizona (113)</a></li>                     
                </ul>';

preg_match_all('/<ul class="statelist">(.*) <\/ul>/', $data, $m);

print_r($m);

将s选项添加到您的正则表达式

preg_match_all('/<ul class="statelist">(.*) <\/ul>/s', $data, $m);
                                                              ^^^^ here

它将使您的正则表达式接受自动换行(\\ n字符)。 请参阅文档

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM