使用 PowerShell 檢查字串的開頭

Marion Paul Kenneth Mendoza 2023年1月30日 2022年5月14日
  1. 使用 -Like 邏輯運算子使用 PowerShell 檢查字串的開頭
  2. 使用 -cLike 邏輯運算子使用 PowerShell 檢查字串的開頭
  3. 在 PowerShell 中使用 StartsWith() 函式來檢查字串的開頭
使用 PowerShell 檢查字串的開頭

在某些情況下,我們可能會遇到需要檢查字串變數是否以字元或字串開頭的用例。

檢查字串是否以特定字元或字串開頭是編寫指令碼時的常見做法,並且在使用 Windows PowerShell 編寫時也相當容易。

本文將演示如何使用 Windows PowerShell 中的不同方法檢查字串變數的開頭。

我們可以使用帶有萬用字元的 Windows PowerShell -like 運算子來檢查字串的開頭是否區分大小寫和不區分大小寫。但在我們討論它的語法之前,我們可能需要澄清什麼是萬用字元。

萬用字元是用於匹配多個字元的系統模式。它們在 cmdlet 中指定特定模式以過濾結果或僅返回萬用字元結果。Windows PowerShell 中有多種型別的萬用字元可用。它們被表示為*?[m-n][abc]

在此特定用例中,我們將使用星號 (*) 萬用字元。星號萬用字元表示匹配模式必須包含零個或多個字元。因此,例如,字串 ba* 可能對應於 batbathbarsbasilbasilica 或簡單的 ba。

使用 -Like 邏輯運算子使用 PowerShell 檢查字串的開頭

以下方法使用 -like 運算子檢查字串是否以另一個字串開頭。預設情況下,-Like 運算子忽略區分大小寫的語句。但是,如前所述,如果我們使用邏輯運算子,則必須與星號萬用字元配合使用。

示例程式碼:

$strVal = 'Hello World'
if($strVal -like 'hello*') {
      Write-Host "Your string starts with hello."
} else {
      Write-Host "Your string doesn't start with hello."
}

輸出:

Your string starts with hello.

使用 -cLike 邏輯運算子使用 PowerShell 檢查字串的開頭

我們可以使用 -cLike 運算子來執行區分大小寫的比較。

$strVal = 'Hello World!'
if($strVal -clike 'h*') {
      Write-Host "Your string starts with lowercase h."
} else {
      Write-Host "Your string starts with uppercase H."
}

輸出:

Your string starts with uppercase H.

在 PowerShell 中使用 StartsWith() 函式來檢查字串的開頭

我們還可以使用 .NET 框架的字串擴充套件函式 StartsWith() 來檢查字串是否以一組字元開頭。

以下方法檢查一個字串是否以另一個字串開頭。

$strVal ='Hello World!'
if($strVal.StartsWith('Hello')) {
     Write-Host 'Your string starts with hello.'
} else {
     Write-Host 'Your string doesn't start with hello.'
}

StartsWith 函式還接受另一個引數,我們可以使用它來檢查區分大小寫的字元。這個引數是 CurrentCultureIgnoreCase。如果要執行區分大小寫的比較,請使用以下方法。

$strVal ='Hello world'
if($strVal.StartsWith('hello','CurrentCultureIgnoreCase')) {
     Write-Host 'True'
} else {
     Write-Host 'False'
}
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