2

我想替换一个简单的字符串“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”。和 "^WEEK.$" 但它没有用

你能帮我用正则表达式吗?谢谢

====== 编辑 ===================

好的。我尝试

$LOG= "C:\FILE.TXT"
$A= "TEST"
(Get-Content $LOG) | Foreach { $_ -Replace "WEEK\.", $A } | Set-Content $LOG;

似乎它的作品

4

1 回答 1

4

发生这种情况的原因是因为您使用了 patternWEEK.点是一个问题:在正则表达式世界中,点表示“任何字符”。这就是为什么它同时替换WEEK_WEEK.

当您添加反斜杠时,该点被转义,即。它失去了它的特殊意义。从而使其工作。

于 2013-08-06T10:49:29.697 回答