帮助将不胜感激,我有一个字符串,如: APP_RUNTIME_ERB3242322_1_P3A97.tar.gz
我想解析它并得到以下内容: P3A97
字符串会随时间变化,但基本上我需要在.tar.gz部分之前的最后五个字母数字字母,只要我得到这个字符串数据。
我可以使用java字符串拆分方法,但我不知道我可以使用什么正则表达式来获取最后5个字符。
答案 0 :(得分:5)
您可以使用lastIndexOf
str.substring(str.lastIndexOf("_") + 1, str.lastIndexOf(".tar.gz"))
答案 1 :(得分:2)
您最初可以基于“_”进行拆分,然后获取它为您提供的最后一个标记。然后你可以拆分“。”并采取它给你的第一个标记。这当然取决于格式在每次拆分时是否总是具有相同数量的令牌。
证明:
APP_RUNTIME_ERB3242322_1_P3A97.tar.gz
进入
APP
RUNTIME
ERB3242322
1
P3A97.tar.gz
然后将P3A97.tar.gz
分成P3A97
tar
和gz
答案 2 :(得分:1)
...
String str = "APP_RUNTIME_ERB3242322_1_P3A97.tar.gz";
String lastChars = str.substring(str.length() - 12).replace(".tar.gz", "");
System.out.print(lastChars);
P3A97
答案 3 :(得分:1)
每当我收到这个字符串数据时,我需要.tar.gz部分之前的最后五个字母数字字母。
我可以使用java字符串拆分方法,但我不知道我可以用什么正则表达式来获取最后5个字符
这里你不需要正则表达式。除了你提到的,如果.tar.gz
可以假设在字符串的末尾,那么你正在寻找substring
:
starting at (length of the string) - length(.tar.gz) - 5
ending at above index + 5