我想与Powershell匹配 - 替换未引用的所有$测试事件(下面示例中的第3,4,6,7行)
1) '$test'
2) test
3) $test
4) foo $test bar
5) foo '$test' bar
6) foo "$test" foo
7) "$test"
我使用了下面的正则表达式
'[^\'']\$test[^\'']'
但这也与空间匹配,例如在第4行中,导致替换它们。
如果没有嵌入单引号中,我怎么能完全匹配$ test?
答案 0 :(得分:0)
您可以使用以下正则表达式匹配第3,4,6,7行中的$ test(即,$test
未包含在单引号内)
(?<!\')\$test(?!\')
<强>解释强>
(?<!\')\$test
否定前瞻,确保它与单引号后面的字符串$test
不匹配。(?!\')
以下字符不是单引号。仅当满足两个条件时,正则表达式引擎才匹配字符串$test
。