【PowerShell】メールアドレスからドメイン名のみを取得する方法

プログラミング

最近メールアドレスのドメイン部分だけ取得して処理することが多いので備忘録として書き留めておきます。

プログラムの紹介

解説するスクリプトは例えば「test@gmail.com」から「gmail.com」のみを取得する方法です。

ソースコード

# メールアドレス
$mail = "test@gmail.com"

# ドメイン取得
$domain = $mail.Substring($mail.IndexOf("@")+1)

# ドメイン表示
Write-Host $domain

解説

こちらの部分の解説をしていきます。
$domain = $mail.Substring($mail.IndexOf(“@”)+1)

処理の順番として、まず赤文字部分が実行されます。
$domain = $mail.Substring($mail.IndexOf(“@”)+1)

IndexOfメソッドにより、文字列の中で@が先頭から何番目に出現するかを取得します。
最初の文字を0番目としてカウントするため、test@gmail.comの例では「4」を取得します。

それにより、Substringメソッドの引数は「4+1」となり5が入ります。
$domain = $mail.Substring(5)

Substringメソッドにより、先頭から5文字目までの文字を削除します。
test@gmail.comの先頭から5文字は「test@」であるため、「gmail.com」だけが残ります。

以上の過程でドメインのみを取得することができます。

最後に

今回はちょっと地味でしたが、汎用しやすい内容だったかと思います。

さまざまな場面で使いまわしてもらえれば幸いです!!

コメント

タイトルとURLをコピーしました