PHP正则表达式 /<adata="()"s1="()"/is 取第一和第二捕获组的数据
完整的PHP程序如下(用preg_match_all函数返回所有匹配)
<php$str = '<a id="btlist10" st="1" ditem="true" class="item multi-lines with-avatar" ftios="1" ck="TlRZNFlUSTRNakk9" ft="1" data="ABC123456" ix="10"
analytical="false" s1="ABC123" jxd1="123" jxd2="ABC123" onclick="openmenu($(this))"><a id="btlist11" st="1" ditem="true" class="item multi-lines with-avatar"
ftios="1" ck="TlRZNFlUSTRNakk9" ft="1" data="ABC123456" ix="10" analytical="false" s1="ABC123" jxd1="123" jxd2="ABC123" onclick="openmenu($(this))"><a
id="btlist12" st="1" ditem="true" class="item multi-lines with-avatar" ftios="1" ck="TlRZNFlUSTRNakk9" ft="1" data="ABC123456" ix="10" analytical="false"
s1="ABC123" jxd1="123" jxd2="ABC123" onclick="openmenu($(this))">';
preg_match_all ('/<adata="()"s1="()"/is', $str, $matches);
for ($i=0; $i<count($matches[0]); $i++) {
echo "data="$matches[1][$i]"s1="$matches[2][$i]"\n";
}
>
推荐使用querylist
<phpheader("Content-type:text/html;charset=utf-8");
require 'QueryList/QueryListclassphp';
$url = "要抓取的网站";
$reg = array(
"title" => array("a","text"),
"src" => array("a","href"),
);
//$rang = "[id^=post-]";
$hj = QueryList::Query($url,$reg);
print_r($hj->jsonArr);
1,过滤所有html标签的正则表达式:</[^>]+>
2,过滤所有html标签的属性的正则表达式:$html = preg_replace("/<([a-zA-Z]+)[^>]>/","<\\1>",$html);
3,过滤部分html标签的正则表达式的排除式(比如排除<p>,即不过滤<p>):</[^pP/>]+>
4,过滤部分html标签的正则表达式的枚举式(比如需要过滤<a><p><b>等):</[aApPbB][^>]>
5,过滤部分html标签的属性的正则表达式的排除式(比如排除alt属性,即不过滤alt属性):\s(!alt)[a-zA-Z]+=[^\s]
header('content-type:text/html; charset=utf-8');
$str = '<li><a href="/news1397/" title="1827年3月5日 意大利物理学家伏打逝世">1827年3月5日 意大利物理学家伏打逝世</a> </li>
<li><a href="/news1398/" title="1871年3月5日 波兰女革命家卢森堡诞辰">1871年3月5日 波兰女革命家卢森堡诞辰</a> </li>
<li><a href="/news1399/" title="1886年3月5日 董必武诞辰">1886年3月5日 董必武诞辰</a> (图)</li> ';
preg_match_all('/<a>()<\/a>/im', $str, $matches);
var_dump($matches[1]);
三个都一样吗?
$str='<a target="_blank" href="bbsphp">析</a> <a target="_blank" href="kksphp">亚</a> <a target="_blank" href="zzsphp">欧</a>';
preg_match_all('/<a target="_blank"()</a>/imsU',$str,$arr);
echo $arr[0][2];
这样就取出来了
代码如下:
<php$str = '<dd id="kj_num">
<span class="blueball_big">2</span>
<span class="blueball_big">6</span>
<span class="blueball_big">6</span>
</dd>';
$matches = array();
if (preg_match_all('/"blueball_big"\>(\d+)<\/span>/', $str, $matches)) {
foreach ($matches[1] as $value) {
print($value ' ');
}
}
>
以上就是关于PHP正则表达式取多个标签属性问题全部的内容,包括:PHP正则表达式取多个标签属性问题、php用正则获取html标签内容、php正则匹配所有a标签,并删除等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)