我在preg_replace()
中使用以下模式从html文件中所有路径的开头替换特定域名。一切都很好,但问题是它也取代了电子邮件地址中的域名。
preg_replace('%(https?://)?(www\.)?domain\.com/?%im', '', '$html')
结果如下:
domain.com/path/ => /path/
www.domain.com/path/ => /path/
答案 0 :(得分:2)
如果要替换:
但是,如果不是该域名的电子邮件地址,则您需要对电子邮件地址中所需的@
使用否定后备广告:
'%(https?://)?(?<!@)(www\.)?domain\.com/?%im'
您不需要m
修饰符,如果您不想替换尾随/
,请将其删除:
'%(https?://)?(?<!@)(www\.)?domain\.com%i'