doujia4759 2017-05-24 14:32
浏览 43
已采纳

正则表达式 - 如何重复正则表达式代码

I have on the site something like this:

 <div class="latestItemIntroText">

        <div class="itemLinks">
            <div class="share">Share</div>
            <div class="dummy-div"></div>

            <div class="addthis_sharing_toolbox"></div>

        </div>
     Lorem ipsum <br /><br />
     Lorem ipsum <br /><br />
     Lorem ipsum <br /><br />
     Lorem ipsum <br /><br />

 </div>

I need to have this text Lorem ipsum only. I tryed to do this regex code like this:

</div>([\s?]+[^<]+[<br?/?>]*[^<]+[<br?/?>]*[^<]+[<br?/?>]*[^<]+)</div>

I saw that this part I repeat many times :

[^<]+[<br?/?>]* --> because I don't know how many times there will be br with lorem pisum, maybe one, maybe 10 times... is there a possibility to short this regex?

  • 写回答

2条回答 默认 最新

  • doubao6681 2017-05-24 15:19
    关注

    Using Regex for HTML String is not a good approach, instead use DOMDocument for this.

    Try this code snippet here

    <?php
    ini_set('display_errors', 1);
    $string = <<<HTML
    <div class="latestItemIntroText">
    
            <div class="itemLinks">
                <div class="share">Share</div>
                <div class="dummy-div"></div>
    
                <div class="addthis_sharing_toolbox"></div>
    
            </div>
         Lorem ipsum <br /><br />
         Lorem ipsum <br /><br />
         Lorem ipsum <br /><br />
         Lorem ipsum <br /><br />
    
     </div>
    HTML;
    
    $domDocument = new DOMDocument();
    $domDocument->loadHTML($string);
    
    $domXPath = new DOMXPath($domDocument);
    $results = $domXPath->query('//div[@class="itemLinks"]');
    $toRemove[]=$results->item(0);
    foreach($toRemove as $removal)
    {
        $removal->parentNode->removeChild($removal);
    }
    $results = $domXPath->query('//div[@class="latestItemIntroText"]');
    print_r($results->item(0)->textContent);
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 关于大棚监测的pcb板设计
  • ¥15 stm32开发clion时遇到的编译问题
  • ¥15 lna设计 源简并电感型共源放大器
  • ¥15 如何用Labview在myRIO上做LCD显示?(语言-开发语言)
  • ¥15 Vue3地图和异步函数使用
  • ¥15 C++ yoloV5改写遇到的问题
  • ¥20 win11修改中文用户名路径
  • ¥15 win2012磁盘空间不足,c盘正常,d盘无法写入
  • ¥15 用土力学知识进行土坡稳定性分析与挡土墙设计
  • ¥70 PlayWright在Java上连接CDP关联本地Chrome启动失败,貌似是Windows端口转发问题