使用Powershell version 3 &读取文件的内容,然后我需要查看该文件中是否包含几个字符串中的一个,如果是,则将其替换。在我的情况下,问题是我需要匹配的字符串之一可能会有不同数量的空格(或根本没有)。Powershell - 匹配可能包含空格的字符串
我匹配的字符串中有双引号,后面跟冒号(:),然后是空格(或无),然后是任意数量的状态(可以是字母或数字),后跟逗号。为了简单起见,我只是在下面的代码中使用了一个数字。
$txt = (Get-Content $file)
$oldstr = "`"status`": 1,"
$newstr = '`"status`": 0,"
if (($txt.Contains($old1)) -or ($txt.Contains($oldstr)) -or ($txt.Contains($old2))) {
$txt.Replace($oldstr, $newstr).Replace($old1, $new1).replace($old2, $new2)| Set-Content -Path $file
}
我在被匹配$oldstr
可具有的问题没有,结肠和状态码,其在此实例是一个数字之间的一个或多个空格,但它也可以是几种不同的数字或字符串。 $newstr
不需要复制$oldstr
中的空格。另外,在上例中,它使用Contains中的三个条件之一。实际数据可能包含无,一个,两个或全部三个字符串。
你怎么能做匹配/包含和替换可以有空白的字符串?
好,你就需要正则表达式来做到这一点),但我不能帮你;) – 4c74356b41