2017-07-25 11 views
0

からスペースをPRECEDINGまで一致正規表現は、私がここにこのスニペットを持っている最初の文字

私が欲しいのは、私はこれを試してみました

agent=Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko 

ここまでマッチする正規表現です

agent=Mozilla/5.0 (Windows NT 6.0; WOW64; Trident/6.0; rv:11.0) like Gecko custom1=custom1 custom2=custom2 more=otherstuffi dont care about etc 

は、
agent=(.*?=) 

これは私に:

しかし、custom1は時には文字数が少なくなることがあります。私はそれを特定したくありません.Geckoとカスタムの間のスペースの前にすべてを取得したいのですが、ブラウザ/ OSが正確でない場合ゲッコではないだから私は最良の方法は、いつもそこにあるので、次の=(custom1の後)を使うことだと思う。

したがって、私はそのcustom1 =エージェントから取得し、custom1の前のスペースの前にwhatsだけ一致する場合、それは動作します。

これを複雑にするのは難しいですか?

ありがとうございました。

答えて

1

私は次のことをお勧め:

agent=([^=]*)(?=\s) 

ことができるように、これは=以外にもできるだけ多くの文字と一致しますが、それは、最終的なスペースの前に停止します。

live on regex101.comをテストしてください。

+0

続い非=文字。よく働く。どうも! –

1

あなたは、この正規表現を使用することができます

agent=(.+?)\s+[^=\s]+= 

を、捕捉グループ#1

RegEx Demo

正規表現の分裂で、あなたにマッチしたテキストを取得:

  • agent=:マッチテキスト
  • :マッチ1文字以上(怠け者)
  • \s+:試合1+
  • [^=\s]+=空白:試合1+非空白、完璧=
+0

ahh cool!どのように行うかを知っていることも良いです。 –

関連する問題