2016-03-29 9 views
1

内部の何か何かを選択し、私は次のような場合があり、私は上記の例では、キーと値を抽出するために正規表現を使用したい 正規表現は、必要に応じて引用符

docId:1234 
docName:"Document" 
docDescription:"Document description" 

私は(.+?):\"(.*)\"を生成しました。 group1 - > docName、group2 - >文書

しかし、これは2番目と3番目のケースでのみ機能しました。 (.+?):\"(.*)\"|(.*)のようなものを試しました。しかし、彼らは私に間違った結果をもたらします。誰かが私がここで間違っていることを説明してもらえますか?

+1

[ '^([^:] *):(。*)$'](https://でregex101.com/r/xB9xF1/1) – Tushar

+1

正規表現フレーバ/プログラミング言語とは何ですか? ['(。+?):(?:()(*。))'](https://regex101.com/r/zP3tI7/1)をグループ化する必要があります。しかし、より良い解決法があるかもしれません。 –

+0

シンプルな答えは、引用符をオプション( '+。 (正規表現のために引用する必要はありません - 彼らはあなたの環境の考えである必要があるかもしれません...) – ClasG

答えて

1

オプションの後方参照のマッチングで、この正規表現を使用することができます。

([^:]+):("?)([^"]+)\2 

RegEx Demo

\2は、コロンの後に、オプションの"ためのバックリファレンスです。

関連する問題