文字列を検索し最後に一致した場所を取得する方法
スポンサーリンク
Powershell で文字列を検索し最後に一致した場所(文字列の右側から検索して最初に一致した場所)を取得するには LastIndexOf を使用します。 LastIndexOf は先頭から何文字目が一致したかを返しますが、一致した場所が 1 文字目なら 0 、2 文字目なら 1 を返します。半角文字と全角文字のいずれも同じように 1 文字でカウントされます。
サンプルコードは次の通りです。
PowerShell(実行可能なサンプルコード) | |
1 2 3 4 5 6 7 8 9 10 11 12 | $str = '012345678901234567890123456789' Write-Host $str.LastIndexOf('0') # 20 と出力(=21文字目) Write-Host $str.LastIndexOf('1') # 21 と出力(=22文字目) Write-Host $str.LastIndexOf('2') # 22 と出力(=23文字目) Write-Host $str.LastIndexOf('3') # 23 と出力(=24文字目) Write-Host $str.LastIndexOf('4') # 24 と出力(=25文字目) Write-Host $str.LastIndexOf('5') # 25 と出力(=26文字目) Write-Host $str.LastIndexOf('6') # 26 と出力(=27文字目) Write-Host $str.LastIndexOf('7') # 27 と出力(=28文字目) Write-Host $str.LastIndexOf('8') # 28 と出力(=29文字目) Write-Host $str.LastIndexOf('9') # 29 と出力(=30文字目) |
次のサンプルコードでは、半角文字と全角文字が同じように 1 文字とカウントされている様子が分かります。
PowerShell(実行可能なサンプルコード) | |
1 2 3 4 5 6 7 8 9 10 11 12 | $str = '0123456789零一二三四五六七八九0123456789' Write-Host $str.LastIndexOf('0') # 20 と出力(=21文字目) Write-Host $str.LastIndexOf('1') # 21 と出力(=22文字目) Write-Host $str.LastIndexOf('2') # 22 と出力(=23文字目) Write-Host $str.LastIndexOf('3') # 23 と出力(=24文字目) Write-Host $str.LastIndexOf('4') # 24 と出力(=25文字目) Write-Host $str.LastIndexOf('5') # 25 と出力(=26文字目) Write-Host $str.LastIndexOf('6') # 26 と出力(=27文字目) Write-Host $str.LastIndexOf('7') # 27 と出力(=28文字目) Write-Host $str.LastIndexOf('8') # 28 と出力(=29文字目) Write-Host $str.LastIndexOf('9') # 29 と出力(=30文字目) |
複数の文字を組み合わせた文字列でのマッチングも可能です。
PowerShell(実行可能なサンプルコード) | |
1 2 3 | $str = '12345XXXXX12345YYYYY12345ZZZZZ' Write-Host $str.LastIndexOf('12345') # 20 と出力(=21文字目) |
ちなみに文字列を検索して最初に一致した場所を取得するには IndexOf を使用します。詳細は文字列を検索し最初に一致した場所を取得する方法を参照してください。
スポンサーリンク
- 文字列
- 文字列を検索し最初に一致した場所を取得する方法
- 文字列を検索し最後に一致した場所を取得する方法
- 文字列を区切り文字で分割して配列にする方法
- 文字列の文字数をカウントする方法
- 文字列のバイト数をカウントする方法
- 文字列の中で変数を展開する方法
- 大文字・小文字を区別して文字列の一致を確認する方法
- 英語の大文字・小文字を切り替える方法
- 文字列を置換する方法
- 左側をゼロ埋めして固定長の文字列にする方法
- 文字列が空文字や NULL であるかを判定する方法
- 文字列の右側からN文字取り出す方法
- 文字列の左側からN文字取り出す方法
- 文字列の一部を取り出す方法
- 文字列の両端の全角スペース/半角スペースを削除する
- ヒアドキュメントを使って複数行を 1 つの文字列にする
- 文字列が特定の文字列で始まるかを調べる
- タブや改行を文字列値に含める方法
- バッククオテーション ( ` ) を文字列値に含める方法
- シングルクオテーション ( ' ) を文字列値に含める方法
- ダブルクオテーション ( " ) を文字列値に含める方法