分かりやすく、使いやすく。

文字列の左側からN文字取り出す方法

スポンサーリンク

Powershell には Left メソッドは無い為、 Substring メソッドを使用して左側から指定した文字数を取り出します。

Substring の第一引数(開始位置)に 0 を指定することで、左側 1 文字目から取り出すことができます。

  1. 半角文字列の左側からN文字取り出す
  2. 全角文字列の左側からN文字取り出す
  3. 全角文字と半角文字混合の文字列の場合
  4. 数値の左側からN文字取り出す


半角文字列の左側からN文字取り出す

サンプルコードは次の通りです。

PowerShell(実行可能なサンプルコード)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# 10文字の文字列を作成
$str = '0123456789';
 
# 左から5文字取得 01234
Write-Host $str.Substring(0, 5);
 
# 左から4文字取得 0123
Write-Host $str.Substring(0, 4);
 
# 左から3文字取得 012
Write-Host $str.Substring(0, 3);
 
# 左から2文字取得 01
Write-Host $str.Substring(0, 2);
 
# 左から1文字取得 0
Write-Host $str.Substring(0, 1);  

実行結果は次の通りです。

01234
0123
012
01
0 

全角文字列の左側からN文字取り出す

PowerShell の Substring は文字列の長さはバイト数ではなく文字数での指定になります。その為、全角の場合も引数で指定した数だけ文字を取り出します。

PowerShell(実行可能なサンプルコード)
1
2
3
4
5
6
7
8
9
10
11
# 5文字の文字列を作成
$str ='一二三四五';
 
# 左から3文字取得 一二三
Write-Host $str.Substring(0, 3);
 
# 左から2文字取得 一二
Write-Host $str.Substring(0, 2);
 
# 左から1文字取得 一
Write-Host $str.Substring(0, 1);  

上記の実行結果は次の通りです。

一二三
一二
一 

全角文字と半角文字混合の文字列の場合

Substring はバイト数ではなく文字数での指定になります。サンプルコードは次の通りです。

PowerShell(実行可能なサンプルコード)
1
2
3
4
5
6
7
8
9
10
11
# 5文字の文字列を作成
$str ='1二3四5';
 
# 左から3文字取得 1二3
Write-Host $str.Substring(0, 3);
 
# 左から2文字取得 1二
Write-Host $str.Substring(0, 2);
 
# 左から1文字取得 1
Write-Host $str.Substring(0, 1); 

上記の実行結果は次の通りです。

1二3
1二
1 

数値の左側からN文字取り出す

数値の場合、Substring メソッドは使用できないので、 ToString で文字列に変換した後 Substring を使用します。

PowerShell(実行可能なサンプルコード)
1
2
3
4
5
6
7
8
9
10
11
# 5桁の数字を作成
$int = 12345;
 
# 左から3文字取得 123
Write-Host $int.ToString().Substring(0, 3);
 
# 左から2文字取得 12
Write-Host $int.ToString().Substring(0, 2);
 
# 左から1文字取得 1
Write-Host $int.ToString().Substring(0, 1); 

上記の実行結果は次の通りです。

123
12
1 
スポンサーリンク
スポンサーリンク