【问题标题】:How to catch value with tags?如何用标签捕捉价值?
【发布时间】:2012-12-21 12:36:29
【问题描述】:

" title="" /> bla bla bla bla " title="" /> bla bla bla " title="" />

如何用prey_match_all 捕获每个<!--dle_image_begin: ... <!--dle_image_end-->dle_image_begindle_image_end 之间的内容无关紧要 - 我只需要将它们中的每一个放在数组中(包括 dle_image_begindle_image_end 标签)。

我试过了:<!--dle_image_begin:.*([^|]dle_image_end-->)<!--dle_image_begin:.*?(<--dle_image_end-->) 之类的,但仍然无法理解它是如何工作的……有人可以给点建议吗?

【问题讨论】:

    标签: regex preg-match-all


    【解决方案1】:

    只需使用这个正则表达式

    /(<!--dle_image_begin.*?dle_image_end-->)/
    

    preg_match_all( '/(&lt;!--dle_image_begin.*?dle_image_end--&gt;)/', $code, $matches )$matches 将包含所有匹配项。

    它将匹配以&lt;!--dle_image_begin 开头并以dle_image_end--&gt; 结尾的模式,并且介于两者之间。周围的括号必须匹配整个表达式,而不仅仅是一部分。

    【讨论】:

      【解决方案2】:

      有两个问题。 &lt;--dle_image_end 应该是 &lt;!--dle_image_end 并且您可以省略括号:

      <?php
      
        $source = <<<SOURCE_HEREDOC
      <!--dle_image_begin:http://some_url.com/uploads/posts/2012-12/1.png|--><img src="some_url.com/uploads/posts/2012-12/1.png" alt="" title=""  /><!--dle_image_end--> bla bla bla bla <!--dle_image_begin:http://some_url.com/image/2.png|--><img src="some_url.com/uploads/image/2.png" alt="" title=""  /><!--dle_image_end--> bla bla bla <!--dle_image_begin:http://some_url.com/asfafsdsaf|--><img src="some_url.com/asfafsdsaf" alt="" title=""  /><!--dle_image_end-->
      SOURCE_HEREDOC;
      
        $regex = "/<!--dle_image_begin:.*?--dle_image_end-->/";
      
        preg_match_all($regex,trim($source),$matches);
      
        echo "\n";
        foreach($matches as $match) {
          foreach($match as $part) {
            echo "\n";
            echo "  -> ".$part;
            echo "\n";
          }
        }
        echo "\n";
      ?>
      

      输出:

        -> <!--dle_image_begin:http://some_url.com/uploads/posts/2012-12/1.png|--><img src="some_url.com/uploads/posts/2012-12/1.png" alt="" title=""  /><!--dle_image_end-->
      
        -> <!--dle_image_begin:http://some_url.com/image/2.png|--><img src="some_url.com/uploads/image/2.png" alt="" title=""  /><!--dle_image_end-->
      
        -> <!--dle_image_begin:http://some_url.com/asfafsdsaf|--><img src="some_url.com/asfafsdsaf" alt="" title=""  /><!--dle_image_end-->
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2010-11-09
        • 1970-01-01
        • 2015-01-24
        • 2012-05-05
        • 2018-10-30
        • 1970-01-01
        • 2021-12-17
        • 2018-08-22
        相关资源
        最近更新 更多