1. ホーム
  2. スクリプト・コラム
  3. パワーシェル

文字列中の大文字を検索するPowerShellの実装

2022-02-04 11:28:31

文字列の中から大文字を探したい場合、正規表現を使うことがあります。あるいは、大文字のリストを使ってひとつずつマッチさせることもできますし、もっと柔軟に .NET Framework の IsUpper() 関数を使うこともできます。

PowerShellの土壌は.NETであり、そのフレームワークに手を伸ばし、少しでも多くの機能を掘り起こすことが私たちの永遠の課題なのです。
次の例は、文字列内のすべての文字をスキャンして、最初に出会った大文字の位置を返します。

$text = 'here is some text with Uppercase letters'
 
$c = 0
$position = foreach ($character in $text.ToCharArray())
{
 $c++
 if ([Char]::IsUpper($character))
 {
  $c
  break
 }
}
 
if ($position -eq $null)
{
 'No uppercase characters detected.'
}
else
{
 "First uppercase character at position $position"
 $text.Substring(0, $position) + "<<<" + $text.Substring($position)
}




出力は次のようになります。

PS C:\>First uppercase character at position 24
 Here is some text with U<<