使用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