2014-01-17 33 views
-1

(+ [A-ZA-Z0-9 \。])\ S *(?:在| @ |(上))\ S *(\ w +)\ S *(?:做T?| \)\ S *(\ w +)(\ S *(?:做T?| \)\ S *(\ w +))?正則表達式在Java中的電子郵件匹配

我寫上述正則表達式拿起電子郵件地址。

這成功地拿起鮑勃gmail點來

但是,它不回暖,通用汽車公司的Gmail點科網鮑勃(攝像以下電子郵件存在[email protected]

此外,如果文字中出現「at」這個詞,它也會產生一些誤報。比如字符串「在運行時運行,它」將返回作爲電子郵件[email protected]

如何捕捉電子郵件的第二個變體,並避免捕獲[email protected]有什麼建議?

+4

爲什麼另起爐竈?從apache的commons使用'EmailValidator.getInstance()。isValid(emailAddr)'。 http://commons.apache.org/proper/commons-validator/apidocs/org/apache/commons/validator/routines/EmailValidator.html#isV​​alid(java.lang.String) – user2336315

+0

@ user2336315 - 謝謝。但是,它自己也很好嘗試。或者查看apache源代碼。 – Steam

+0

也看看右邊 – kmera

回答

0

請參閱here

可能嘗試表達 - >^[A-Z0-9 ._%+ - ] + @ [A-Z0-9 .-] +(:?[AZ] {2} | COM |組織|網絡| EDU | GOV |萬|企業|資訊|牧高笛|名稱|航空|亞洲|人才招聘|博物館)$

0

有兩種選擇這樣做的:

  1. 不要。有很多原因可能會導致失敗。找出它是否是有效的電子郵件地址的最佳方法是實際發送一封電子郵件。或者你知道[email protected]是有效的地址嗎?還有更多的例子。 See here
  2. 自己不這樣做,重新使用Apache公地現有庫或東西
+0

雖然我同意你所提出的觀點,但OP可能試圖選擇@和@的電子郵件地址。被替換爲「at」和「dot」。 – nhahtdh