0

助けていただければ幸いです。APP_RUNTIME_ERB3242322_1_P3A97.tar.gz のような文字列があります。

そして、それを解析して次を取得したいと思います: P3A97

文字列は時間とともに変化しますが、基本的には、この文字列データをフィードするたびに、.tar.gz 部分の前に最後の 5 つの英数字が必要です。

Java 文字列分割メソッドを使用できますが、最後の 5 文字を取得するために使用できる正規表現がわかりません。

4

4 に答える 4

4

あなたが使用することができますlastIndexOf

str.substring(str.lastIndexOf("_") + 1, str.lastIndexOf(".tar.gz"))
于 2013-10-16T20:01:17.420 に答える
1

最初に「_」に基づいて分割し、それが提供する最後のトークンを取ることができます。次に、「。」で分割できます。それがあなたに与える最初のトークンを取ります。もちろん、これは、フォーマットが常に分割ごとに同じ数のトークンを持つかどうかによって異なります。

実証済み:

APP_RUNTIME_ERB3242322_1_P3A97.tar.gzの中へ APP

RUNTIME

ERB3242322

1

P3A97.tar.gz

そして、に分割P3A97.tar.gzP3A97 targz

于 2013-10-16T19:59:37.603 に答える
0

この文字列データをフィードするときはいつでも、.tar.gz 部分の前に英数字の最後の 5 文字が必要です。

Java 文字列分割メソッドを使用できますが、最後の 5 文字を取得するために使用できる正規表現がわかりません

ここでは正規表現は必要ありません。あなたが言及したことに加えて.tar.gz、文字列の最後にあると想定できる場合は、次を探していますsubstring:

starting at (length of the string) - length(.tar.gz) - 5
ending at above index + 5
于 2013-10-16T20:08:53.447 に答える