0

Eclipse正規表現検索を使用して、特定のユーザーがuser.a@domain.comまたはuser.b@domain.comではないファイル内の電子メールアドレス(つまり、anything@domain.com)を見つけようとしています。

太字の項目の下にある文字列を使用して見つける必要がありますが、他のアドレスはスキップする必要があります: bob @ domain.com、user.b @ domain.com、andy @ domain.com user.a @domain.com

私は以下のことをしましたが、私が思うように機能していません。\ b(?! user.b)\ w * @ domain.com \ b

4

3 に答える 3

3
^(?!user\.b@domain.com|user\.a@domain.com).*[\w]+[\w]?[\w./]+@[\w_]+\.[a-zA-Z]+\.?[a-zA-Z]{2,4}$

user\.b@domain.com|user\.a@domain.com|これにより、ドメインに関係なくすべてのメールアドレスが検索されます。これ以上メールアドレスのリストに追加し続けるだけで 、"."

于 2012-09-28T09:49:22.263 に答える
0

正確な要件はわかりませんが、user。[文字と数字] @ domain.comの形式以外のものと一致します(.左側には含まれていません)。

(?<!user\.)\w+@domain\.com\b

オリジナルにはいくつかの問題がありました。

  • 。は単語の境界であるため、「user.a@domain.com」から「a@domain.com」に一致します。
  • .正規表現内にはメタ文字があるため、エスケープする必要があります。
  • 単純な構成ではなく、後読みアサーションを使用する必要がありました(?! ... )

更新:ここにPerl正規表現のドキュメントがあります。一般的に言って、Eclipseはこれに従います。

さらなる更新:明確にするために、私のコードは、@の左側にドットが含まれている電子メールアドレスと一致しません。他のアドレスをドットと一致させる必要がある場合、後読みの性質上、実際には非常に複雑になり始めます。この変更されたバージョンは、アドレスをユーザー以外のものと一致させます。その後に1〜5文字が続きます。

[\w\.]+(?<!user\.\w{1,5})@domain\.com\b
于 2012-09-28T09:42:18.370 に答える
-1

実際、正規表現でメールアドレスを確認することはお勧めしません。できる最善の方法は、確認メールを送信することです。私は同意します、それは常に可能であるとは限りません、しかしそれはあなたが持つことができる最も信頼できる方法です。

詳細については、 http //davidcelis.com/blog/2012/09/06/stop-validating-email-addresses-with-regex/および付随するredditのディスカッションhttp://de.reddit.com/r/programming/を参照してください。コメント/zgumq/ stop_validating_email_addresses_with_regex /

于 2012-09-28T10:46:29.987 に答える