助けていただければ幸いです。APP_RUNTIME_ERB3242322_1_P3A97.tar.gz のような文字列があります。
そして、それを解析して次を取得したいと思います: P3A97
文字列は時間とともに変化しますが、基本的には、この文字列データをフィードするたびに、.tar.gz 部分の前に最後の 5 つの英数字が必要です。
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
この文字列データをフィードするときはいつでも、.tar.gz 部分の前に英数字の最後の 5 文字が必要です。
Java 文字列分割メソッドを使用できますが、最後の 5 文字を取得するために使用できる正規表現がわかりません
ここでは正規表現は必要ありません。あなたが言及したことに加えて.tar.gz
、文字列の最後にあると想定できる場合は、次を探していますsubstring
:
starting at (length of the string) - length(.tar.gz) - 5
ending at above index + 5