gpt4 book ai didi

java - 正则表达式没有正确地用版本号分解文件路径

转载 作者:行者123 更新时间:2023-11-30 06:37:35 27 4
gpt4 key购买 nike

我使用正则表达式模式来分解 servlet 的上下文路径。

/{1,2}([^/{1,2}]+)

这对于像 /User/folder1/folder2/folder3/ 这样的简单路径非常有用。

然而,在更真实的场景中,如果其中一个文件夹名称包含带点的版本号,则似乎存在问题,例如:/User/username/Library/Tomcat/apache-tomcat-6.0.24.

在这种情况下,Matcher.group(1) 将返回 apache-tomcat-6.0. 而不是 apache-tomcat-6.0.24 .我不知道为什么会这样;我认为不应该。

有什么见解吗?

编辑

这个有效:

/{1,2}([^/]+)

最佳答案

[^/{1,2}] 表示“除/{1之外的所有字符, ,, 2}", 所以 242 没有t 得到匹配(它将与像 a/2 这样的路径相同并且与版本号无关)。在 […] 中,大多数字符按字面解释,{1,2} 等结构不起作用。我认为如果您只是说 [^/]+ 应该可以。我不确定您为什么要匹配两个连续的斜线 — 只需匹配一个斜线并过滤掉空目录名即可。

关于java - 正则表达式没有正确地用版本号分解文件路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3279456/

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