我想替换一个简单的字符串“WEEK”。 (带点)在文本文件中,字符串为“TEST”
$LOG= "C:\FILE.TXT"
$A= "TEST"
(Get-Content $LOG) | Foreach { $_ -Replace "WEEK.", $A } | Set-Content $LOG;
问题是我的文件包含以下内容:
WEEK_A WEEK.
当我运行我的脚本时,结果是:
TESTA TEST
我想要的结果是:
WEEK_A TEST
我试着用“周”。和“^ WEEK。$”但是没有用
你能帮助我使用正则表达式吗?感谢
======编辑==================
确定。我试试
$LOG= "C:\FILE.TXT"
$A= "TEST"
(Get-Content $LOG) | Foreach { $_ -Replace "WEEK\.", $A } | Set-Content $LOG;
似乎是它的作品
答案 0 :(得分:4)
之所以发生这种情况,是因为你使用了模式WEEK.
点是一个问题:在正则表达式世界中,点表示“任何字符”。这就是它取代WEEK_
和WEEK.
的原因。
当您添加反斜杠时,则点被转义即。它失去了它的特殊意义。从而使其发挥作用。