php正则表达式匹配a标签
高洛峰
高洛峰 2017-04-11 09:13:28
[PHP讨论组]
<table width='100%' border='0'>
    <TBODY>
    <tr>
        <TD class=line width=18 align=middle>
            <IMG src='../images/yt/d.gif' width=4 height=7>
        </TD>
        <TD class=line align=left><A class=newslink
                                     href='xxxxx?id=1624'
                                     title='xxxx'
                                     target=_blank>要匹配的内容</A></TD>
        <TD class=line width=75>
            <p class=STYLE1 align=right>要匹配的内容</p>
        </TD>
    </TR>
    </tr></TBODY>
</table>

其中href中的id的具体值要匹配到,还有a标签的值,还有后面的p中的内容也要匹配。

感觉好复杂,求大神帮忙。

高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

全部回复(4)
高洛峰
/<a(.*?)href="(.*?)id"(.*?)>(.*?)<\/a>/i
PHP中文网
<?php

    $string = "<table width='100%' border='0'>
    <TBODY>
    <tr>
        <TD class=line width=18 align=middle>
            <IMG src='../images/yt/d.gif' width=4 height=7>
        </TD>
        <TD class=line align=left><A class=newslink
                                     href='xxxxx?id=1624'
                                     title='xxxx'
                                     target=_blank>要匹配的内容</A></TD>
        <TD class=line width=75>
            <p class=STYLE1 align=right>要匹配的内容</p>
        </TD>
    </TR>
    </tr></TBODY>
</table>";

    $reg = "#.*<(a|A).*href=['\"].*\?id=(\d+)['\"].*>(.*)</(a|A)>.*<p class=STYLE1 align=right>(.*)</p>#isU";

    preg_match($reg, $string, $matchs);

    // a href id
    $id = $matchs[2];

    // a content
    $content = $matchs[3];

    // p content
    $pContent = $matchs[5];

给个参考

天蓬老师

preg_match_all("/<A.*\?id=(.*)'.*>(.*)<\/A>.*<p\sclass=STYLE1\salign=right>(.*)<\/p>/Uis", $str,$m);

天蓬老师

如果不会写正则 可以试试 phpquery 写法跟jquery差不多 哈哈

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号