我的字符串是:/var/www/domain.com/public_html/foo/bar/folder/another/..
我想从此字符串中删除根文件夹,以仅获取公共文件夹,因为某些服务器内部有多个网站。
我的实际正则表达式是:/^(.*?)(www|public_html|public|html)/s
我的实际结果是:/domain.com/public_html/foo/bar/folder/another/..
但我想删除最后一次出现的情况,并得到如下内容:/foo/bar/folder/another/..
Thanks!
您必须使用贪婪量词并使用环顾检查替代方案是否包含在斜杠之间:
/^.*(?<![^\/])(?:www|public(?:_html)?|html)(?![^\/])/
关于环视:我使用带有否定字符类的负环视来检查是否同时存在斜杠或字符串的限制。这样你就可以确定,例如html
是一个文件夹,而不是另一个文件夹名称的一部分。
我删除了无用的 s 修饰符。我也删除了捕获组,因为目标是将所有捕获组替换为空字符串。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)