重複の可能性:
正規表現を使用してメールアドレスを検証する
これは宿題です。私はしばらくの間それに取り組んできました。たくさんの読書をして、初心者のために正規表現にかなり慣れてきたと感じています。
メールのリストを検証/無効化するための正規表現を見つけようとしています。問題を引き起こしているアドレスが2つありますが、両方を同時に正しい方法で検証することはできません。リストにある他のすべての電子メールで機能する12の異なる式を実行しましたが、これら2つを同時に取得することはできません。
まず、アドレス。
me@example..com - invalid
someone.nothere@1.0.0.127 - valid
接尾辞を検証する私の式の部分
私はもともと
@.+\\.[[a-z]0-9]+
そして、さらにいくつかの無効なアドレスをチェックし、両方のパターンに対して電子メールをチェックするための2番目のパターンがあり、一方は有効性をチェックし、もう一方は無効性をチェックしましたが、私の教授はそれをすべて表現したいと言いました。
@[[\\w]+\\.[\\w]+]+
また
@[\\w]+\\.[\\w]+
私はそれを多くの異なる方法で書いてみましたが、私はこれらの2つの式を表現するために異なる構文を使用していたと確信しています。
私はそれが何をしたいのかを知っています、私はそれを「character+」の文字クラスに一致させたいです。「character+」+
プラス記号は少なくとも1つです。無効なクラスでは、文字クラスを1回だけ繰り返すことを許可すると(明らかにIPが一致しません)、文字クラスを繰り返すことを許可すると、そうでない場合でも2番目の期間と一致します。文字が前に付きます。理由がわかりません。
すべてを()でグループ化し、エスケープした後に{1}を付けてみました。\ wをazに変更し、+を{1、}に置き換えます。文字で囲まれるのにピリオドは必要ないようです。