PowerShell で文字列の先頭を確認する

Marion Paul Kenneth Mendoza 2023年1月30日
  1. PowerShell で -Like 論理演算子を使って文字列の先頭をチェックする
  2. -cLike 論理演算子を使用して、PowerShell を使用して文字列の先頭を確認する
  3. StartsWith() 関数を使用して、PowerShell を使用して文字列の先頭を確認する
PowerShell で文字列の先頭を確認する

文字列変数が文字または文字列で始まるかどうかをチェックする機能を必要とするユースケースに遭遇する場合があります。

文字列が特定の文字または文字列で始まっているかどうかを確認することは、スクリプトを作成するときの一般的な方法であり、Windows PowerShell で記述した場合もかなり簡単です。

この記事では、Windows PowerShell のさまざまなメソッドを使用して文字列変数の先頭を確認する方法について説明します。

Windows PowerShell の -like 演算子をワイルドカード文字とともに使用して、大文字と小文字を区別する文字列と大文字と小文字を区別しない文字列の先頭を確認できます。ただし、その構文について説明する前に、ワイルドカードとは何かを明確にする必要がある場合があります。

ワイルドカードは、複数の文字を照合するために使用される体系的なパターンです。コマンドレットで特定のパターンを指定して、結果をフィルタリングしたり、ワイルドカードの結果のみを返したりします。Windows PowerShell で使用できるワイルドカードには、さまざまな種類があります。それらは、*?[m-n]、および [abc] として表されます。

この特定のユースケースでは、アスタリスク(*)ワイルドカードを使用します。アスタリスクのワイルドカードは、一致するパターンに 0 個以上の文字が含まれている必要があることを示します。したがって、たとえば、文字列 ba*は、batbathbarbasilbasilica、または単にバに対応する場合があります。

PowerShell で -Like 論理演算子を使って文字列の先頭をチェックする

次のメソッドは、-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.

StartsWith() 関数を使用して、PowerShell を使用して文字列の先頭を確認する

StartsWith() と呼ばれる.NET Framework の文字列拡張関数を使用して、文字列が文字のセットで始まるかどうかを確認することもできます。

次のメソッドは、文字列が別の文字列で始まっているかどうかを確認します。

$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