我正在使用此正则表达式代码隐藏PHP页面中的链接;
$msg = preg_replace("#(https?://([-\w\.]+)+(:\d+)?(/([\w/_\.]*(\?\S+)?)?)?)#is",'',$msg);
也试过这个;
$msg = preg_replace("#<a[^>]*(http|www)(.*)</a>#siU", "","{$msg}");
似乎没什么用。请帮忙找到正确的正则表达式?
$msg = 'asdsadasdas
LINK:
-----
www.google.com
<a href="www.google.com">Google.com</a>
[url=www.google.com]Google URL[/url]';
asdsadasdas
LINK:
-----
www.google.com
[url=www.google.com]Google URL[/url]
asdsadasdas
LINK:
-----
答案 0 :(得分:2)
以下正则表达式可以达到目的
/^.*\b(http:\/\/)?(www\.)[^.]+\.com\b.*$/
将所有行(完全)与其中的链接匹配。
例如,请参阅http://regex101.com/r/yQ6bY1/3
$msg = preg_replace("/^.*\b(http:\/\/)?(www\.)[^.]+\.com\b.*$/m",'',$msg);
将提供输出
asdsadasdas LINK: -----
答案 1 :(得分:1)
$msg = preg_replace("#<a[^>]*(http|www)(.*)</a>#siU", "","{$msg}");
$msg = preg_replace("#\[url=([^\r\n\"<&\(\)]+?)\](.+?)\[/url\]#esi", "","{$msg}");
$msg = preg_replace("#([\>\s\(\)])(www|ftp)\.(([^\/\"\s\<\[\.]+\.)*[\w]+(:[0-9]+)?(/[^\"\s<\[]*)?)#i", "","{$msg}");