我的字符串是:/var/www/domain.com/public_html/foo/bar/folder/another/ ..
我想从这个字符串中删除根文件夹,只获取公共文件夹,因为有些服务器里面有多个网站.
我的实际正则表达式是:/^(.*?)(www.public_html | public | html)/ s
我的实际结果是:/domain.com/public_html/foo/bar/folder/another/ ..
但我想删除最后一个ocorrence,并获得像这样的东西:/ foo / bar / folder / another / ..
谢谢!
解决方法:
你必须使用一个贪婪的量词,并检查替代是否使用lookarounds包含在斜杠之间:
/^.*(?<![^\/])(?:www|public(?:_html)?|html)(?![^\/])/
关于外观:我使用带有否定字符类的负面外观来检查字符串是否同时存在斜杠或限制.这样你可以肯定,例如html是一个文件夹,而不是另一个文件夹名称的一部分.
我删除了无用的修饰符.我也删除了捕获组,因为目标是用空字符串替换all.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。