私はこのような文字列を持っています。
ars:a:currency (Argentina!: Pesos):
コロンを使用して文字列を分割する必要がありますが、角かっこ内のコロンは分割しないでください。この文字列を分割するには正規表現が必要です。
私の出力は次のようになります
ars
a
currency (Argentina!: Pesos)**
助けていただければ幸いです:)
ネストされた括弧がないことが確実な場合は、単一の正規表現でそれを行うことができます。その場合、次の括弧が閉じ括弧でない場合にのみ、コロンで単純に分割できます。
String[] splitArray = subjectString.split(
"(?x): # Multiline regex: Match a colon\n" +
"(?! # only if it's impossible to match the following at this point:\n" +
" [^()]* # any number of characters besides parentheses\n" +
" \\) # followed by a closing parenthesis\n" +
") # End of lookahead assertion");
単一の正規表現では機能しません。あまり複雑にせずにできることはString.split("[()]")
、 を使用して他のすべての配列インデックスで文字列を分割し:
、最後に連結して戻すことです。
おそらく、次のようなものがうまくいくでしょう:
String[] tok = str.split(":", 3);
あなたの文字列はどこstr
ですか。