基本上我试图替换它:a.b.c=17.5.2017&x.y=z
用这个:
a[b][c]=17.5.2017&x[y]=z
我刚才在网上找到了一个正则表达式,它看起来像这样:
[.]([^.]*?)(?=[=.&]|$)
现在,这可行,但它也会替换查询字符串中的值。在我的原始示例中,日期(17.5.2017)被17 [5] [2017]取代,请参见此处:
https://regex101.com/r/5IzNov/1/
我想的是,只有在& 符号之前没有 = 符号时才匹配,或者它是字符串的开头。但是我不知道该怎么做。我认为我需要一个有条件的外观,但这超出了我的意识。
答案 0 :(得分:2)
您可以使用此正则表达式进行搜索:
[.]([^.&=]+)(?=[^=&]*=)
并替换使用:
[$1]
RegEx BreakUp:
[.]
- 匹配文字DOT ([^.&=]+)
- 匹配1个或多个不属于[.&=]
(?=[^=&]*=)
- 预见我们前面有=
而没有遇到&