次の形式の文字列からキーと値のペアを取得しようとしています。
a0=d235 a1=2314 com1="abcd" com2="a b c d"
この投稿の助けを借りて、キーと値のペアをキャプチャする次の正規表現を作成できました。
Pattern.compile("(\\w*)=(\"[^\"]*\"|[^\\s]*)");
問題は、このパターンの 2 番目のグループも次のように引用符をキャプチャすることです。
a0=d235
a1=2314
com1="abcd"
com2="a b c d"
引用符を除外するにはどうすればよいですか? 私はこのようなものが欲しい:
a0=d235
a1=2314
com1=abcd
com2=a b c d
編集:
引用符があるかどうかに応じて異なるグループで値を取得することにより、上記を実現することができます。私はパーサー用にこのコードを書いているので、パフォーマンス上の理由から、同じグループ番号で値を返すことができる正規表現を考え出そうとしています。