【问题标题】:how to remove specific url from text in regex如何从正则表达式中的文本中删除特定的网址
【发布时间】:2016-08-29 21:49:51
【问题描述】:

我无法从文本中删除特定的url,但将文本或 html 标记保留在锚标记之间。但我无法删除它。我从文本中删除了特定的 url,但无法获取锚标记之间的文本或 html。这是我从文本中删除特定网址的代码。

preg_replace(|<a [^>]*href="http://www.microsoft.com[^"]*"[^>]*>.*</a>|iU, '', $a)

这是示例

<a href="http://www.microsoft.com/">   <img src="http://c.s-microsoft.com/en-in/CMSImages/MMD_TCFamily_1006_540x304.jpg?version=ac2c5995-fde2-b40b-3f2a-b6a0baa88250" class="mscom-image feature-image" alt="Learn about Lumia 950 and Lumia 950 XL." width="540" height="304">   </a>

我想获取 img 标记或具有特定 url 的锚标记之间的任何文本。

我的代码是否有任何错误。请纠正我。我想在 php 中使用正则表达式,请帮助我。

【问题讨论】:

  • 那是你真正的 PHP 吗?当前执行会发生什么?源代码都在一行吗?
  • 首先,转义正斜杠。
  • @lbarros 正斜杠并不特殊,不需要转义。 | 是分隔符。
  • 哦,好的,感谢@chris85 提供的信息。
  • 好吧,我猜 OP 已经消失了。 1. 看报价。 2. 查看修饰符,php.net/manual/en/reference.pcre.pattern.modifiers.php(特别是 s) 3. 考虑一个解析器

标签: php regex


【解决方案1】:

我们又来了... Don't use regexes to parse html,使用 html 解析器,例如 DOMDocument

$html = <<< EOF
<a href="http://www.microsoft.com/">   <img src="http://c.s-microsoft.com/en-in/CMSImages/MMD_TCFamily_1006_540x304.jpg?version=ac2c5995-fde2-b40b-3f2a-b6a0baa88250" class="mscom-image feature-image" alt="Learn about Lumia 950 and Lumia 950 XL." width="540" height="304">  SOME TEXT </a>
EOF;

$dom = new DOMDocument();
$dom->loadHTML($html);
$xpath = new DOMXPath($dom);
foreach($xpath->query("//a[contains(@href,'microsoft.com')]") as $element ){
        $img = $xpath->query('./img',$element)->item(0);
        echo $img->getAttribute('src'); // img source
        echo $img->getAttribute('alt'); // img alt text
        echo $element->textContent; //text inside the a tag
}
//http://c.s-microsoft.com/en-in/CMSImages/MMD_TCFamily_1006_540x304.jpg?version=ac2c5995-fde2-b40b-3f2a-b6a0baa88250
//Learn about Lumia 950 and Lumia 950 XL.
//SOME TEXT

Ideone Demo

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-08
    • 2021-11-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多