2017-08-03 15 views
-1

私はキーと値のペアの値を取得しようとしています。たとえば、次の例では、値 "foo"と "bar"をキャプチャしたいと考えています。正規表現でキーと値のペアの値を取得する

Ex。正規表現で特定の文字列を取得する上での一般的な理解のためにノード= fooのタイプ=バー

+0

をテストする/構築するためのthisウェブサイトが参考。各キーと値のペアを取得するには、ループを使用する必要があります。これの詳細は、使用しているプログラミング言語に依存します。 – Barmar

+0

私は鍵を知っていれば、それがより簡単になることに気付きました。私は実際にログパーサーの形式を理解しようとしています。正規表現を使用するだけです。 – Brandon

+0

すでに多くのログパーサーが記述されています。 – Barmar

答えて

0

、次のパターンを考えることができます。FOO =バー

(.*[^=])=(.*) 

fooのは、最初にマッチします括弧内の基

=は「=」直接

にマッチする(「=」の前に停止意味し、「=」ではないすべてと一致)

バーは、第2のグループと一致します(他のすべては行末まで)。

ペアがペアごとに別々の行に格納されている場合 これは一般的なキャプチャの仕組みを説明しようとしています。あなたの特定の例

ノード= fooのタイプ=最初の括弧のグループはFOO 2つ目バーが一致します

.*[^=]=(.*[^ ]) .*[^=]=(.*[^ ]) 

バー

は注意してくださいその実現のために正規表現ライブラリは様々であり、様々な言語でわずかに異なる場合もあります。 php、java、C++など。

いくつかのオンライン正規表現テスターがあります。

https://regex101.com/

+0

これは、 'foo'と' bar'ではなく 'node'と' foo'を捕捉します。 – Barmar

+0

彼はちょうどキーではなく値をキャプチャしたい。 – Barmar

0

^.+=(.*)あなたの例ではfoobarをキャプチャします。

私はあなたが単一の正規表現で複数の値をキャプチャすることはできません正規表現パターン

関連する問題