gpt4 book ai didi

PHP 正则表达式最后一次出现的单词

转载 作者:可可西里 更新时间:2023-11-01 00:39:52 25 4
gpt4 key购买 nike

我的字符串是:/var/www/domain.com/public_html/foo/bar/folder/another/..

我想从这个字符串中删除根文件夹,只得到公共(public)文件夹,因为有些服务器里面有多个网站。

我实际的正则表达式是:/^(.*?)(www|public_html|public|html)/s

我的实际结果是:/domain.com/public_html/foo/bar/folder/another/..

但我想删除最后一个 ocorrence,并得到这样的东西:/foo/bar/folder/another/..

谢谢!

最佳答案

您必须使用贪婪量词并使用环视检查替代项是否包含在斜杠之间:

/^.*(?<![^\/])(?:www|public(?:_html)?|html)(?![^\/])/

关于lookarounds:我使用negative lookarounds with a negative character class来同时检查是否有斜杠或字符串的限制。这样你就可以确定 html 是一个文件夹而不是另一个文件夹名称的一部分。

我删除了无用的 s 修饰符。我也删除了捕获组,因为目标是用空字符串替换所有。

关于PHP 正则表达式最后一次出现的单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46240739/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com