次のような文字列が与えられた場合
Prefix without commas, remainder with optional suffix (optional suffix)
1 回のパスで文字列の 3 つの部分を照合して抽出するのに最適な Java 正規表現は何でしょうか?
- 最初のコンマまでのプレフィックス
- 左括弧までの余り
- 括弧内のサフィックス
上記の例では、3 つのグループ (引用符内) は次のようになります。
- 「コンマなしのプレフィックス」
- 「オプションの接尾辞付きの剰余」
- " (オプションのサフィックス)"
文字列の 3 つの部分はすべて可変長です。「残り」部分にはコンマと括弧自体を含めることができ、オプションの接尾辞はスペースで始まる場合とそうでない場合があり、その後に左括弧が続き、0 個以上の文字が続き、その後に右括弧が続き、オプションのスペースが続きます。行末。
のようなものを試す
([^,]*),(.*)(\s*\(.*\))?
グループ 1 と 2 のみを生成し、グループ 3 をグループ 2 の最後に置きます。