用例是提取在=(等号)中没有填充任何值的字符串 例如:在下面的例子中,给定输入字符串:
something=na&rows[0][data]=0&rows[0][name]=&rows[0][indexable]=true&rows[0][searchable]=false&columns[0][search][value]=&
我们想匹配以下内容
&rows[0][name]=
&columns[0][search][value]=
我尝试使用这个正则表达式 &(.*?)=&
,但这里的问题是它匹配这样的东西 &rows[0][data]=0&rows[0][name]=&
这是不正确的。它需要匹配字符串 &rows[0][name]=
我们在正则表达式中将此类搜索称为什么也会有所帮助? (正向前瞻?)
答案 0 :(得分:2)
您可以使用否定的字符类和积极的前瞻:
&[^&=]+=(?=&)
模式匹配
&
匹配 & 字符[^&=]+
匹配除 &
或 =
之外的任何字符 1+ 次=(?=&)
匹配 =
,使用正向预测直接在右侧断言 &
字符作为不使用前瞻的替代方法,您还可以使用匹配以下 &
的捕获组:
(&[^&=]+=)&