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

java使用字符串拆分来解析某个小节,java,string,Java,String,非常感谢您的帮助,我有一个字符串,例如: APP_RUNTIME_ERB3242322_1_P3A97.tar.gz 我想对其进行解析并得到以下结果: P3A97 字符串会随着时间的推移而变化,但基本上,每当我获取这个字符串数据时,我都需要.tar.gz部分之前的最后五个字母数字字母 我可以使用java字符串拆分方法,但我不知道我可以使用什么正则表达式来获取最后5个字符。您可以首先基于“ux”进行拆分,然后获取它提供给您的最后一个标记。然后你可以在“.”上拆分,并获取它给你的第一个令牌。当然,这

非常感谢您的帮助,我有一个字符串,例如: APP_RUNTIME_ERB3242322_1_P3A97.tar.gz

我想对其进行解析并得到以下结果: P3A97

字符串会随着时间的推移而变化,但基本上,每当我获取这个字符串数据时,我都需要.tar.gz部分之前的最后五个字母数字字母

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

您可以首先基于“ux”进行拆分,然后获取它提供给您的最后一个标记。然后你可以在“.”上拆分,并获取它给你的第一个令牌。当然,这取决于格式是否始终具有每个分割相同数量的令牌

证明:

APP\u RUNTIME\u ERB3242322\u 1\u P3A97.tar.gz
into
APP

运行时

ERB3242322

1

P3A97.tar.gz

然后将
P3A97.tar.gz
拆分为
P3A97
tar
gz
您可以首先基于“uux”进行拆分,然后获取它给您的最后一个令牌。然后你可以在“.”上拆分,并获取它给你的第一个令牌。当然,这取决于格式是否始终具有每个分割相同数量的令牌

证明:

APP\u RUNTIME\u ERB3242322\u 1\u P3A97.tar.gz
into
APP

运行时

ERB3242322

1

P3A97.tar.gz

然后将
P3A97.tar.gz
拆分为
P3A97
tar
gz
您可以使用

你可以用

每当我获取这个字符串数据时,我都需要.tar.gz部分前面的最后五个字母数字字母

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

这里不需要regexp。除了您提到的内容之外,如果可以假定
.tar.gz
位于字符串的末尾,那么您正在查找
子字符串

starting at (length of the string) - length(.tar.gz) - 5
ending at above index + 5
每当我获取这个字符串数据时,我都需要.tar.gz部分前面的最后五个字母数字字母

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

这里不需要regexp。除了您提到的内容之外,如果可以假定
.tar.gz
位于字符串的末尾,那么您正在查找
子字符串

starting at (length of the string) - length(.tar.gz) - 5
ending at above index + 5

为什么不在
上拆分。或者可以拆分两次。如果始终是
.tar.gz
之前的最后五个字符,则可以使用字符串长度为-12的子字符串方法(或其他,我没有计算)来获得所需的内容。为什么不在
\uu
上拆分呢。或者你可以拆分两次。如果它总是
.tar.gz
之前的最后五个字符,你可以使用substring方法和字符串的长度-12(或者其他一些,我没有计算过)来得到你想要的。那么谁知道名字本身会出现什么点呢
str.indexOf(“.tar.gz”)
?哈哈。只是吹毛求疵;)我更喜欢这个解决方案。好主意。:)为什么要这样做而不是从len-12到len-7的简单子字符串?要求中没有任何内容表明解决方案需要拆分
lastIndexOf,并且您没有解释OP为什么要使用它。我确实认为这显然值得投反对票。我猜你会保守秘密的。那么谁知道名字中会出现什么样的点呢?
str.indexOf(“.tar.gz”)
?哈哈。只是吹毛求疵;)我更喜欢这个解决方案。好主意。:)为什么要这样做而不是从len-12到len-7的简单子字符串?要求中没有任何内容表明解决方案需要拆分或lastIndexOf,并且您没有解释OP为什么要使用它。我确实认为这显然值得投反对票。我猜你会保守秘密的。
starting at (length of the string) - length(.tar.gz) - 5
ending at above index + 5