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