2023 © RegexOne
メール | Twitter
HTMLフォームを扱う場合、フォーム入力を正規表現と照合して検証すると便利なことがよくあります。特に、メールアドレスは仕様が複雑なため、正しく一致させるのが難しく、独自の関数を作成する代わりに、組み込みの言語またはフレームワーク関数を使用することをお勧めします。ただし、これまでに学習したことを使用すると、一般的なメールアドレスの多くに一致する非常に堅牢な正規表現を非常に簡単に構築できます。
注意すべき点の1つは、多くの人が使い捨てのためにプラスアドレス指定(「name+filter@gmail.com」など)を使用していることです。これは「name@gmail.com」に直接送信されますが、追加情報でフィルタリングできます。さらに、一部のドメインには複数のコンポーネントがあります。たとえば、「hellokitty.hk.com」でドメインを登録し、「ilove@hellokitty.hk.com」形式のメールアドレスを持つことができます。そのため、メールアドレスのドメイン部分のマッチングには注意が必要です。
以下は一般的なメールアドレスの例です。この例では、フィルター(+文字以降)とドメイン(@文字以降)を除く、メールアドレスの名前を取得してみましょう。
| タスク | テキスト | キャプチャグループ | |
| キャプチャ | tom@hogwarts.com | tom | ![]() |
| キャプチャ | tom.riddle@hogwarts.com | tom.riddle | ![]() |
| キャプチャ | tom.riddle+regexone@hogwarts.com | tom.riddle | ![]() |
| キャプチャ | tom@hogwarts.eu.com | tom | ![]() |
| キャプチャ | potter@hogwarts.com | potter | ![]() |
| キャプチャ | harry@hogwarts.com | harry | ![]() |
| キャプチャ | hermione+regexone@hogwarts.com | hermione | ![]() |
| 解答 | 各メールアドレスの先頭を抽出するには、^([\w\.]*)という単純な式を使用できます。これは、ピリオドを含む英数字で始まるメールアドレスに一致します。「@」または「+」に達するまでテキストの先頭から一致します。 繰り返しますが、メールアドレスのマッチングにはフレームワークを使用する必要があります。 |