java使用字符串拆分解析某个子节

时间:2013-10-16 19:56:11

标签: java string

帮助将不胜感激,我有一个字符串,如: APP_RUNTIME_ERB3242322_1_P3A97.tar.gz

我想解析它并得到以下内容: P3A97

字符串会随时间变化,但基本上我需要在.tar.gz部分之前的最后五个字母数字字母,只要我得到这个字符串数据。

我可以使用java字符串拆分方法,但我不知道我可以使用什么正则表达式来获取最后5个字符。

4 个答案:

答案 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 targz

答案 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