gpt4 book ai didi

java - 模式匹配获取字符的 lastindex

转载 作者:行者123 更新时间:2023-11-29 06:50:55 25 4
gpt4 key购买 nike

下面将在 _ 之间给出我。 例如 Pet_you.txt会给我

但如果我得到 pet_te_you.txt 将得到 te_you 但我需要 you 结果。如何修复我的模式以获取最后一个 _

Pattern MY_PATTERN = Pattern.compile("\\_(.*?)\\.");
Matcher m = MY_PATTERN.matcher("pet_te_you.txt");
while (m.find()) {
Type = m.group(1);
System.out.println(dbType);
}

最佳答案

作为非正则表达式模式,您可以使用 substring 两次 - 一次用于 lastIndexOf("_"),然后用于 lastIndexOf("。 ").

s = s.substring(s.lastIndexOf("_") + 1);
s = s.substring(0, s.lastIndexOf("."));

或者以*非丑陋的方式将它们结合起来的有趣替代方案:

s = s.substring(s.lastIndexOf("_") + 1).substring(0, s.substring(s.lastIndexOf("_") + 1).lastIndexOf("."));

或者,也许,从 lastIndexOf(".") - 1 反向循环遍历 String(我使用了 StringBuilder),直到你到达一个非字符(或者可能是一个 _)。

for (int i = s.lastIndexOf(".") - 1; i > 0; i--) {
if (Character.isAlphabetic(s.charAt(i))) {
sb.append(s.charAt(i));
} else {
break;
}
}

这是一个 online示例。

*这绝对是丑陋的

关于java - 模式匹配获取字符的 lastindex,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48441656/

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