请帮助我改进我的正则表达式以确定除我自己的网站之外的外部链接。 E.g-我的网站是:myweb.com。 如果我也发布像abc.myweb.com这样的子域名。我想找到除这两种模式之外的链接,所以我可以阻止外部链接。
$string = 'www.client.com, www.client.co.in, www.myweb.com, www.abc.myweb.com';
$string = preg_replace('/[https?://]?(www\.)?(?!myweb.com)[^\s/]+(?:/[^\s/]+)*/?/s', '*', $string);
var_dump($string);
答案 0 :(得分:0)
This GIST might be useful to you取自Daring Fireball post
(?i)\b((?:[a-z][\w-]+:(?:/{1,3}|[a-z0-9%])|www\d{0,3}[.]|[a-z0-9.\-]+[.][a-z]{2,4}/)(?:[^\s()<>]+|\(([^\s()<>]+|(\([^\s()<>]+\)))*\))+(?:\(([^\s()<>]+|(\([^\s()<>]+\)))*\)|[^\s`!()\[\]{};:'".,<>?«»“”‘’]))