使用 PowerShell 检查字符串的开头

Marion Paul Kenneth Mendoza 2023年1月30日
  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