私は下の文字列を3つのグループに分割しようとしていますが、使用しているパターンで期待どおりに動作していないようです。つまり、matcher.group(3)
を呼び出すと、*;+g.3gpp.cs-voice;require
の代わりにnull値が返されます。パターンに何が問題なの?Java正規表現のパターングループのキャプチャ
文字列:"*;+g.oma.sip-im;explicit,*;+g.3gpp.cs-voice;require"
パターン:期待(\\*;.*)?(\\*;.*?\\+g.oma.sip-im.*?)(,\\*;.*)?
:
グループ1:null
、 グループ2:*;+g.oma.sip-im;explicit
、 グループ3:,*;+g.3gpp.cs-voice;require
実際:
グループ1:null
、 グループ2:*;+g.oma.sip-im
、 グループ3:null
グループ1と同様のパターンをキャプチャグループ3(義務) '、'で分割するだけですか? – TheLostMind
@ TheLostMind:不正確/予期しない結果が生じるためです。 –
'[*] [^、*] +'を使ってマッチを得ることができますか? – LukStorms