REGEX删除本地锚标签

时间:2013-01-10 23:34:47

标签: php html regex

我需要一些帮助在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。

谢谢!

2 个答案:

答案 0 :(得分:0)

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

>[^<]*

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

的replaceAll

<[^>]*>

答案 1 :(得分:0)

您可以使用某些第三方库来解析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 ...);