正则表达式匹配URL与特定模式

时间:2014-12-23 16:26:15

标签: regex

$pattern = '/<a\s+href=["\']([^"\']+)["\']/i';
$desc_feed = preg_replace($pattern, '<a href="https://www.facebook.com/something"', $block->get_description());

这是我用来过滤URL的正则表达式,效果很好。但是,我只想定位某种类型的URL,即我只想更换整个URL,如果它包含某个子字符串://l.face...(没有点)

任何帮助表示感谢。

1 个答案:

答案 0 :(得分:0)

免责声明:不要使用正则表达式解析html !!

但是,如果你也有,这可能适用于你的测试用例。

查找:'~(?s)<a\s+href=(["\'])(?:(?!\1).)*?//l\.face(?:(?!\1).)*?\1~' 替换:无论你想要什么

 (?s)                          # Dot all
 <a \s+ href= 
 ( ["'] )                      # (1), Delimiter
 (?:
      (?! \1 )                      # Any char except delimiter
      . 
 )*?
 //l \. face                   # What you're looking for
 (?:
      (?! \1 )                      # Any char except delimiter
      . 
 )*?
 \1                            # Backref to delimiter