Go 言語の正規表現スキル: メールのドメイン名を照合する方法
Go 言語の正規表現スキル: 電子メールのドメイン名を照合する方法
正規表現は Go 言語の非常に実用的なツールであり、パターン マッチや文字列の処理に役立ちます。実際のアプリケーションでは、多くの場合、電子メール アドレスの正当性を検証する必要があります。この記事では、正規表現を使用して電子メール ドメイン名を照合する方法と、対応するコード例を紹介します。
始める前に、いくつかの基本概念を理解する必要があります。電子メール アドレスは、通常、ユーザー名とドメイン名の 2 つの部分で構成されます。ユーザー名の部分は、文字、数字、アンダースコア、マイナス記号を含む文字列です。ドメイン名の部分は、1 つ以上のドメイン名タグで構成され、各タグは点でつながっています。たとえば、電子メール アドレス example@email.com では、example がユーザー名で、email.com がドメイン名です。
電子メール ドメイン名と一致させるには、次の正規表現を使用できます:
package main import ( "fmt" "regexp" ) func main() { email := "example@email.com" pattern := `^[a-zA-Z0-9-_]+@([a-zA-Z0-9-_]+.)+[a-zA-Z]{2,}$` match, _ := regexp.MatchString(pattern, email) if match { fmt.Println("邮箱域名匹配成功!") } else { fmt.Println("邮箱域名匹配失败!") } }
実行結果は次のとおりです:
邮箱域名匹配成功!
上記のコードでは、go のコードを使用します。正規表現パッケージ regexp を使用し、一致させるために MatchString メソッドを呼び出します。正規表現のパターンは、各文字が特別な意味を持つ文字列です。
-
^
は、一致する文字列 -
の先頭を表します。 [a -zA-Z0-9-_]
は、1 つ以上の文字、数字、アンダースコア、またはマイナス記号と一致することを意味します -
@
は、電子メール アドレスの @ 記号と一致することを意味します -
([a-zA-Z0-9-_] .)
は、1 つ以上のドメイン名タグと一致し、ピリオドで終わることを意味します。ピリオドはバックスラッシュでエスケープする必要があります -
[a-zA-Z]{2,}
2 つ以上の文字に一致するトップレベル ドメイン名を表します。
regexp.MatchString メソッドを呼び出すことにより、指定された電子メール アドレスを正規表現と比較し、一致する場合は true を返し、一致しない場合は false を返します。
正規表現は文字列のパターン マッチのみを行うことができ、メールボックスの真の存在を確認するためには使用できないことに注意してください。したがって、電子メールを検証する場合、その形式が合法であるかどうかを判断することしかできず、実際に存在するかどうかは保証できません。
実際のアプリケーションでは、電子メール アドレスに国際化ドメイン名文字 (IDN) や特殊文字が含まれているなど、いくつかの特殊な状況も考慮する必要がある場合があります。このような場合、正規表現パターンをさらに調整する必要があります。
まとめると、Go言語の正規表現機能を使えば、メールアドレスのドメイン名部分を簡単に照合して検証することができます。正規表現を記述するときは、ターゲット文字列と正確に一致するように、さまざまなシナリオや要件に応じてパターンを調整する必要があります。
以上がGo 言語の正規表現スキル: メールのドメイン名を照合する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









Go Crawler Collyのキュースレッドの問題は、Go言語でColly Crawler Libraryを使用する問題を調査します。 �...

Go言語での文字列印刷の違い:printlnとstring()関数を使用する効果の違いはGOにあります...

大企業または有名なオープンソースプロジェクトによって開発されたGOのどのライブラリが開発されていますか? GOでプログラミングするとき、開発者はしばしばいくつかの一般的なニーズに遭遇します...

redisstreamを使用してGo言語でメッセージキューを実装する問題は、GO言語とRedisを使用することです...

Golandのカスタム構造ラベルが表示されない場合はどうすればよいですか?ゴーランドを使用するためにGolandを使用する場合、多くの開発者はカスタム構造タグに遭遇します...

GO言語で構造を定義する2つの方法:VARとタイプのキーワードの違い。構造を定義するとき、GO言語はしばしば2つの異なる執筆方法を見ます:最初...

ポインター構文とviperライブラリの使用における問題への取り組みGO言語でプログラミングするとき、特にポインターの構文と使用を理解することが重要です...
