在 PowerShell 中替換字串

Marion Paul Kenneth Mendoza 2023年1月30日
  1. PowerShell 字串簡介
  2. 在 PowerShell 中使用 replace() 函式
  3. 使用 PowerShell 中的 replace() 函式刪除字元
  4. 使用 PowerShell 中的 replace() 函式替換多個例項字串
  5. 使用 PowerShell 替換運算子
  6. 在 PowerShell 中使用替換運算子刪除字元
  7. 在 PowerShell 中使用替換運算子替換多個例項字串
在 PowerShell 中替換字串

PowerShell 可以像許多語言一樣處理字串和文字。其中一項有價值的功能是使用 PowerShell 替換檔案中的字元、字串或文字。

本文將討論 PowerShell replace() 方法和 PowerShell 替換運算子。

PowerShell 字串簡介

使用 PowerShell 最直接的案例之一是替換字串中的字元。假設我們有一個帶有 hello, world 值的 PowerShell 字串。

示例程式碼:

$string = 'hello, world'

我們想用字串 hi 替換該變數中的字串 hello,以將 $string 變數更改為最終值為 hi, world

為此,PowerShell 首先需要確定在哪裡可以找到要替換的特定文字,一旦找到,它就會用自定義的使用者定義的變數值替換文字。

在 PowerShell 中使用 replace() 函式

在 Windows PowerShell 中替換字串的一種便捷方法是使用 replace() 函式,如下所示。replace() 函式有兩個引數,要查詢的字串和要替換找到的文字的字串。

正如我們在下面看到的,Windows PowerShell 找到字串 hello 並將該字串替換為字串 hi。然後該方法返回最終結果 hi, world

示例程式碼:

$string.replace('hello','hi')

輸出:

hi, world

我們可以在任何字串上呼叫 replace() 方法來用另一個字串替換任何文字字串。如果未找到要替換的字串,則 replace() 方法不返回任何內容。

值得注意的是,我們不需要將字串分配給變數來替換字串中的文字。相反,我們可以直接在字串上呼叫 replace() 方法,例如:'hello world'.replace('hello','hi')

使用 PowerShell 中的 replace() 函式刪除字元

也許我們想從另一個字串中刪除一個字串中的字元,而不是用其他東西替換它。我們也可以通過指定一個空字串來做到這一點。

示例程式碼:

$string.replace('hello','')

輸出:

, world

使用 PowerShell 中的 replace() 函式替換多個例項字串

由於 replace() 函式返回一個字串,要替換另一個例項,你可以在末尾附加另一個 replace() 函式呼叫。然後 Windows PowerShell 在原始輸出上呼叫 replace() 方法。

示例程式碼:

$string.replace('hello','').replace('world','globe')

輸出:

, globe

我們可以根據需要將儘可能多的 replace() 函式呼叫連結在一起,但是如果我們有很多字串要替換,我們應該考慮使用替換運算子。

使用 PowerShell 替換運算子

我們還可以使用 Windows PowerShell -replace 運算子來替換文字。 -replace 操作符有類似的方法。

我們提供了一個字串來查詢和替換。使用上面的示例,我們可以使用 replace 運算子將 hello 替換為 hi 類似,如下所示。

示例程式碼:

$string -replace 'hello','hi'

輸出:

hi, world

在 PowerShell 中使用替換運算子刪除字元

replace() 函式一樣,你也可以使用替換運算子從字串中刪除字元。但是,與 replace() 方法不同,你也可以完全排除字串作為要替換的引數,並且你會發現相同的效果。

示例程式碼:

$string -replace 'hello',''

輸出:

, world

在 PowerShell 中使用替換運算子替換多個例項字串

replace() 方法一樣,你也可以將替換運算子的用法連結在一起。但是,由於替換運算子返回一個字串,如下所示。

示例程式碼:

$string -replace 'hello','hi' -replace 'world','globe'

輸出:

hi, globe
Marion Paul Kenneth Mendoza avatar Marion Paul Kenneth Mendoza avatar

Marion specializes in anything Microsoft-related and always tries to work and apply code in an IT infrastructure.

LinkedIn

相關文章 - PowerShell String