0

私は Java でこの文字列の正規表現を作成しようとしています:

key:value
key:"value" 
key:'value' 
key : value  
key :"value 123" 
key: 'value 123'

すべての条件を 1 行で指定できます。

key:value key : value key : "value 123"

キーと値を取得し、トリミングして引用符なしで、それぞれを一致させる必要があります。

残念ながら、Java は正規表現の条件をサポートしていません。

誰かが私を助けることができますか?

前もって感謝します。

4

3 に答える 3

1

このパターンは、次の要件を満たす必要があります。

(\w+)( *):( *)(\w+|(["'])([\w\s]+)\5)
于 2013-03-28T10:24:03.843 に答える
1

これはあなたのニーズに合うはずです(demo):

(\w+)\s*:\s*((?:.(?!\w+\s*(?<!\\):))*)

最初のグループにはキーが含まれ、2 番目のグループには値が含まれます。

ネストさ:れた値を管理する方法を追加しました: でエスケープするだけ\です。

ただし、結果をトリミングする必要があります。

于 2013-03-28T10:28:11.097 に答える
0

次の正規表現を使用できます。

/(\w+)\s*:\s*(((['"]).+?\4)|\w+)/

グループ # 1 がキーになり、グループ # 2 が値になります。

ライブデモ: http://www.rubular.com/r/IPqtdneBeW

于 2013-03-28T10:57:54.637 に答える