2017-05-17 6 views
2

クエリ文字列に括弧でドット表記を交換する:これでa.b.c=17.5.2017&x.y=z正規表現基本的に私はこの置き換えるしようとしている

を:私はしばらく前に、オンラインで正規表現を発見した a[b][c]=17.5.2017&x[y]=z

、それがどのように見えますこれは:

[.]([^.]*?)(?=[=.&]|$) 

これは機能しますが、クエリ文字列の値も置き換えられます。私の元の例では意味、日付(2017年5月17日)は17で置き換えられます[5] [2017]、ここを参照してください:

https://regex101.com/r/5IzNov/1/

私は何を考えていますのみへのだろうがなかった場合は一致=シンボルの前にシンボルまたはそれが文字列の先頭です。しかし、私はこれをどうやって行うのか分かりません。私は条件付きの見解が必要だと思うが、それは私の知識を超えている。

答えて

2

あなたは、この正規表現を使って検索することができます。

[.]([^.&=]+)(?=[^=&]*=) 

そして使用して置き換える:

[$1] 

正規表現の崩壊:

  • [.] - リテラルDOTに
  • 01と一致- マッチ[.&=]
  • (?=[^=&]*=)の一つではない文字の1以上 - 、これは我々が&

Updated RegEx Demo

+1

アメージングに遭遇することなく先に=を持って主張する先読み機能します。それは速かった。あなたのお時間をありがとうございました。 – marekpw

関連する問題