2015-06-10

PowerShell 文字列の部分取得

第6回の投稿となりました。

今回は「文字列の部分取得」について書いていきます。


いろいろとPowerShellで 遊んで 業務効率を上げようと模索していると、変数に格納した文字列を部分的に使用したい場合に出くわします。

例えば・・・
① パスの一部分だけを取得したい(フルパスは必要ない)
② ユーザー入力された文字列のうち、最後の3文字だけを取得したい  などです。

こういった場面で私が使っているのがSubStringメソッドです。

それでは早速、例を記述します。
  -----------------------------------------------------------------------------
    PS C:\> $HOGE = "ABCDEFGHIJ"
    PS C:\> $HOGE.SubString(3,5)
    DEFGH
  -----------------------------------------------------------------------------

1行ずつ解説します。



◆1行目
 $HOGE = "ABCDEFGHIJ"

1行目ではA~Jまでの10文字を変数HOGEに格納しています。


◆2行目
$HOGE.SubString(3,5)

ここが今回のキモですね。
2行目では変数HOGEに対してSubStringメソッドを使用しています。

最も重要なのが (3,5) の部分です。
これは「3文字目から5文字」を表しています。

ここで注意しなければいけないのは、最初の文字(例で言うと「A」)は"1"ではなく"0"であるということです。

つまり例の文字列と文字番号はこのような関係となっています。

  A = 0  1文字目
  B = 1  2文字目
  C = 2  3文字目
  D = 3  4文字目
  E = 4  5文字目
  F = 5  6文字目
  G = 6  7文字目
  H = 7  8文字目
   I = 8   9文字目
  J  = 9  10文字目

 この点に注意するようにしてください。


また、例では抜き出す文字の「開始位置」と「文字数」を(3,5)というふうに指定しました。
しかし、時にはこんな場合もあるでしょう。

    「2文字目から残り全部を抜き出したい!!!!」

そんな場合はこのように記述します

    -----------------------------------------------------------------------------
    PS C:\> $HOGE = "ABCDEFGHIJ"
    PS C:\> $HOGE.SubString(1)
    BCDEFGHIJ
  -----------------------------------------------------------------------------

( )に数字を1文字のみ指定すると、それは開始位置とみなされ、その位置から残り全てを取得します。

今回の内容は、あまり使う機会はないかもしれません。
そんなこともできるんだなーぐらいに覚えておいてください。
 
=======================================================================
本投稿に関する疑問や質問には可能な限りお答えさせていただきます。
お気軽にコメントやメールをお送りください。
(リクエストも歓迎します)
メール:tkk-powershell@gmail.com
また、間違いのご指摘・アドバイス等も歓迎いたします。
=======================================================================
Google+、Twitterで更新情報をお届けしています!
ぜひフォローをお願い致します!           
=======================================================================
スポンサーリンク


0 件のコメント:

コメントを投稿

疑問・質問・リクエスト お気軽にどうぞ (^O^)/