php - 对特定域名使用 preg_replace

php - use preg_replace for a specific domain name

我在 preg_replace() 中使用以下模式替换 html 文件中所有路径开头的特定域名。一切都很好,但问题是它也替换了电子邮件地址中的域名。

preg_replace('%(https?://)?(www\.)?domain\.com/?%im', '', '$html')

结果应该是这样的:

domain.com/path/ => /path/
www.domain.com/path/ => /path/

如果要替换:

但不是具有该域的电子邮件地址,那么您需要对电子邮件地址中所需的 @ 使用否定回溯:

'%(https?://)?(?<!@)(www\.)?domain\.com/?%im'

您不需要 m 修饰符,如果您不想替换结尾的 / 则将其删除:

'%(https?://)?(?<!@)(www\.)?domain\.com%i'