php-对特定域名使用preg_replace
我在php-对特定域名使用preg_replace,php,regex,preg-replace,Php,Regex,Preg Replace,我在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 但不是
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
@
使用负面查找:
'%(https?://)?(?<!@)(www\.)?domain\.com/?%im'
你能解释一下html文件中文件路径的开头是什么意思吗;或者提供一个函数示例字符串?另外,
m
修饰符在表达式中没有任何作用。类似于:%(https?:/)?(?否定@
?您将协议部分设置为可选部分,因此正则表达式无法区分example.com
-电子邮件地址和example.com
-网络-url@AbraCadaver这在某种程度上是有效的。尽管https://https://www.domain.com
会很奇怪。?
使其成为可选的;只需删除它就需要它出现一次。
'%(https?://)?(?<!@)(www\.)?domain\.com%i'