使用 Regex 提取匹配模式

Extracting a matching pattern using Regex

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

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]=& 即 incorrect.It 需要匹配字符串 &rows[0][name]= 我们在正则表达式中将此类搜索称为什么也会有所帮助? (正面前瞻?)

您可以使用否定字符 class 进行正前瞻:

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

模式匹配

  • & 匹配一个 & 字符
  • [^&=]+ 匹配除 &=
  • 之外的任何字符 1+ 次
  • =(?=&) 匹配 = 断言一个 & 字符直接向右使用正先行

Regex demo

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

(&[^&=]+=)&

Regex demo