$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...
(没有点)
任何帮助表示感谢。
答案 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