【问题标题】:REGEX to remove local anchor tags正则表达式删除本地锚标签
【发布时间】:2013-01-10 23:34:47
【问题描述】:

我需要一些帮助来编写 PHP 中的正则表达式模式。我需要获取一个包含 HTML 的字符串,找到所有包含 LOCAL href 的锚标签并删除标签,同时将文本保留在标签内。

例子:

<a href="/link1.html">Link 1</a> 
<a href="../link2.html">Link 2</a>
<a href="http://www.localdomain.com/link3.html">Link 3</a> 

应该变成:

Link 1
Link 2
Link 3

编辑: 我正在寻找这样的东西:

function remove_internal_links($content) {
  $pattern = '/<a href="([^"])/';
  $content = preg_replace($pattern, '\\1', $content);
}   

我需要帮助的地方(显然)是 $pattern。

谢谢!

【问题讨论】:

  • 欢迎来到 Stack Overflow。请通过发布您已应用于该问题的一些properly formatted 代码来改进您的问题。此外,请花时间分享您迄今为止为自行研究或解决问题所采取的步骤。
  • 可以选择使用第三方库吗?

标签: php html regex


【解决方案1】:

您可以使用一些第三方库来解析 html,例如 PHP Simple HTML DOM Parser

// Create DOM from URL or file
$html = file_get_html('http://www.google.com/');

// Find all links 
foreach($html->find('a') as $element) 
       if($element->href ...);

【讨论】:

    【解决方案2】:

    您可以通过以下方式提取您想要的部分:

    >[^<]*
    

    或者用“”替换你不想要的东西:

    全部替换

    <[^>]*>
    

    【讨论】:

      猜你喜欢
      • 2011-08-11
      • 1970-01-01
      • 1970-01-01
      • 2011-04-16
      • 2013-01-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多