使用PHP从HTML源代码中预匹配随机文本

wfveoks0  于 2023-05-16  发布在  PHP
关注(0)|答案(1)|浏览(145)

我有网站,它的源代码的HTML代码看起来像下面的东西。

<li class="item" xx-href-xx="http://xx.xx/s/randomtext/randomtext?NOTradnomtext" yy-href-gg="http://xx.xx/X/RANDOMTEXTWHATIWANT/STILLRADNOMTEXTWHATIWANT?NOTradnomtext" data="212123134" data-title="TITLE">
  <a class="front" href="#" xx-href="http://xx.xx/s/randomtext/randomtext?NOTradnomtext">
    <img src="http://photo.jpg" alt="">
    <div class="cock">
        <div class="action"></div>
    </div>
  </a>
  <div class="label">
    <div>
         <h3 class="title">Example</h3>
         <p>2013-10-25 : 03:35</p>
    </div>
 </div>
</li>

... And so on same kind of classes (only titles and texts changing) ...

如何preg_match yy-href-gg=”http://xx.xx/X/TEXTWHATIWANT/TEXTWHATIWANT?NOTradnomtext从所有这些记录,并包括标题的结果。所以结果应该是这样的

  • 示例

TEXTWHATIWANT/TEXTWHATIWANT

  • 实施例2

TEXTWHATIWANT/TEXTWHATIWANT
等等。

qhhrdooz

qhhrdooz1#

使用字符类和取反字符类来匹配允许或不允许的字符。使用\K可以忽略任何匹配的字符,这样您就可以只获得所需的文本部分作为全字符串匹配(没有捕获组)。
我假设你的url路径在目录斜杠之间匹配非斜杠、非双引号和非问号字符是相对安全的。
代码:(Demo

preg_match_all(
    '# [a-z]{2}-href-[a-z]{2}="https?://[^/"?]+/[^/"?]+/\K[^/"?]+/[^/"?]+#i',
    $html,
    $matches
);
var_export($matches[0]);

相关问题