使用 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+ 次
=(?=&)
匹配 =
断言一个 &
字符直接向右使用正先行
作为不使用前瞻的替代方法,您还可以使用捕获组匹配以下 &
:
(&[^&=]+=)&
用例是提取在=(等号)中没有填充任何值的字符串 例如:在下面的示例中,给定输入字符串:
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+ 次
=(?=&)
匹配=
断言一个&
字符直接向右使用正先行
作为不使用前瞻的替代方法,您还可以使用捕获组匹配以下 &
:
(&[^&=]+=)&