Powershell Regex匹配前导和尾随空格

时间:2014-07-13 15:12:42

标签: regex powershell

我想与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?

1 个答案:

答案 0 :(得分:0)

您可以使用以下正则表达式匹配第3,4,6,7行中的$ test(即,$test未包含在单引号内)

(?<!\')\$test(?!\')

DEMO

<强>解释

  • (?<!\')\$test否定前瞻,确保它与单引号后面的字符串$test不匹配。
  • (?!\')以下字符不是单引号。仅当满足两个条件时,正则表达式引擎才匹配字符串$test