Regex 否定多个词

Regex 否定多个词,regex,perl,Regex,Perl,测试字符串: ${$var1} bla ${$var2} bla ${$var2} \${$var2} bla \\\${$var2} bla $var1 \\${$var1} bla \\${$var2} bla \${$var2} \\\{$var2} bla \\${$var2} bla \${$var2} $var1 bla \$var1 bla \\$var1 bla \\\$var1 \$var1 bla \\$var1 bla \\\$var1 \\$var1 bla \\\$va

测试字符串:

${$var1} bla ${$var2} bla ${$var2}
\${$var2} bla \\\${$var2} bla $var1
\\${$var1} bla \\${$var2} bla \${$var2}
\\\{$var2} bla \\${$var2} bla \${$var2}
$var1 bla \$var1 bla \\$var1 bla \\\$var1
\$var1 bla \\$var1 bla \\\$var1
\\$var1 bla \\\$var1 bla \$var1 bla
\\\$var1 bla \\$var1 bla \\\$var1
我正在寻找的选择:

${$var1} bla ${$var2} bla ${$var2}
\${$var2} bla \\\${$var2} bla $var1
\\${$var1} bla \\${$var2} bla \${$var2}
\\\{$var2} bla \\${$var2} bla \${$var2}
$var1 bla \$var1 bla \\$var1 bla \\\$var1
\$var1 bla \\$var1 bla \\\$var1
\\$var1 bla \\\$var1 bla \$var1 bla
\\\$var1 bla \\$var1 bla \\\$var1
我正在寻找一个只选择
${$varN},\\${$varN},\\$varN},\\$varN,\\$varN
不选择
\${$varN}、\\${$varN}、\$varN、\\\\$varN

我尝试过的正则表达式:
(\$\{\$\w*\})(\$\w*)
但是它选择了所有
${$varN}
$varN

您可以使用此正则表达式进行反向查找:

(?<!\\|{)(?:\\\\)*\$(?:{\$)?\w*}?

您能否更详细地解释字符串的来源以及为什么您只想用偶数个反斜杠来匹配单词?请快速解释,谢谢。:)谢谢。。regex101解释道:)我在回答中还添加了详细的解释。