东燕西飞 2023-04-30 20:50 采纳率: 83.3%
浏览 48
已结题

怎么去改这一条PHP正则


preg_match_all('#>\s*(\S*)\s*<#Us',  $html, $matches);

我现在有这么一条正则,匹配页面上所有的> 与< 之间的字符,好像是这样,我自己猜的,有懂得给我详细解释下吧
问题是,这个匹配我想做个限制,就是除了<title>与</title>之间的不匹配,其他的都正常匹配

  • 写回答

4条回答 默认 最新

  • CSDN专家-showbo 2023-04-30 21:16
    关注

    非贪婪模式(U)匹配字符串,用正向前瞻不匹配来实现不查找title,下面这个测试正常

    
    <meta charset="utf=8"/>
    <?php
     $html=<<<str
     <a>abc</a>文字文字<b>bbb</b>文字文字<title>title<title>
     str;
    preg_match_all('#>\s*(\S*)\s*<(?!title)#Us',  $html, $matches);
    var_dump($matches);
    ?>
    
    

    img

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

问题事件

  • 系统已结题 5月9日
  • 已采纳回答 5月1日
  • 创建了问题 4月30日