PHP中的正则表达式以搜索特定数据集

时间:2018-11-27 16:41:30

标签: php regex

搜索 我想从我的网站中摘录一段。它们是索引页面中使用的20多个段落标签。关键区别在每个标签中,style18类使用1次,style 19类使用3次。我想用内容操作系统类18搜索它们。 主要内容


<p class="margin">
    <span class="style18">*the main content*</span>
      » <a href="https://example1.html">
        somthing</a>

        <span class="style19">[somthing]</span>
         » <a href="https://example1.html">Town</a>

         <span class="style19">[somthing]</span>
          » <a href="https://example1.html">somthing</a>

    <span class="style19">[somthing]</span> »
    <a href="https://www.example.html">somthing</a>

    <span class="style19">[somthing]</span>

</p>

<?php
  $data = file_get_contents('https://www.example.net/index.php');

  preg_match('/<title>([^<]+)<\/title>/i', $data, $matches);
  $title = $matches[1];

  echo preg_match('/(<p)\s.+\n.+(style18).+Single\sTrack(.+)\n(.+)\n(.+)\n(.+)\n.+(style19).+\n(.+)\n(.+)\n.+(style19).+\n(.+)\n(.+)\n.+(style19).+\n(.+)\n(.+)\n.+(style19).+\n\n<\/p>/i', $data, $matches);

  $img = $matches[1];

  echo $title."<br>\n";
  echo $img;
  ?>

1 个答案:

答案 0 :(得分:0)

欢迎来到社区@Aerro。

如果我正确地回答了您的问题,则您希望提取具有特定规则的其他跨度所包围的任何跨度的内部内容。尽管这很容易用regexp折断手指,但XPath之类的(树/图)查询语言将是解决此问题的好方法。

例如, http://php.net/manual/en/simplexmlelement.xpath.php