PHP正则表达式取多个标签属性问题

PHP正则表达式取多个标签属性问题,第1张

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

<php

header("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标签,并删除等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/10154173.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存