使用正则表达式提取匹配模式

时间:2021-03-14 10:20:39

标签: regex regex-lookarounds regex-group

用例是提取在=(等号)中没有填充任何值的字符串 例如:在下面的例子中,给定输入字符串:

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]= 我们在正则表达式中将此类搜索称为什么也会有所帮助? (正向前瞻?)

1 个答案:

答案 0 :(得分:2)

您可以使用否定的字符类和积极的前瞻:

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

模式匹配

  • & 匹配 & 字符
  • [^&=]+ 匹配除 &= 之外的任何字符 1+ 次
  • =(?=&) 匹配 =,使用正向预测直接在右侧断言 & 字符

Regex demo

作为不使用前瞻的替代方法,您还可以使用匹配以下 & 的捕获组:

(&[^&=]+=)&

Regex demo

相关问题