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/
如果要替换:
- domain.com
- www.domain.com
- http://domain.com
- http://www.domain.com
但不是具有该域的电子邮件地址,那么您需要对电子邮件地址中所需的 @
使用否定回溯:
'%(https?://)?(?<!@)(www\.)?domain\.com/?%im'
您不需要 m
修饰符,如果您不想替换结尾的 /
则将其删除:
'%(https?://)?(?<!@)(www\.)?domain\.com%i'
我在 preg_replace()
中使用以下模式替换 html 文件中所有路径开头的特定域名。一切都很好,但问题是它也替换了电子邮件地址中的域名。
preg_replace('%(https?://)?(www\.)?domain\.com/?%im', '', '$html')
结果应该是这样的:
domain.com/path/ => /path/
www.domain.com/path/ => /path/
如果要替换:
- domain.com
- www.domain.com
- http://domain.com
- http://www.domain.com
但不是具有该域的电子邮件地址,那么您需要对电子邮件地址中所需的 @
使用否定回溯:
'%(https?://)?(?<!@)(www\.)?domain\.com/?%im'
您不需要 m
修饰符,如果您不想替换结尾的 /
则将其删除:
'%(https?://)?(?<!@)(www\.)?domain\.com%i'