2012-10-17 25 views
0

我有一個要求,在包含域的請求進入我的其餘web服務。解析電子郵件地址以獲取域並對其進行比較

在我的web服務中,我必須檢查這個字段,如果驗證通過,那麼我發送請求到第三方服務。

需要驗證:

message_from字段包含email addressstring。我要檢查,如果domain name@後的所有內容)roin.com

對於前:[email protected]傳球,傳球[email protected][email protected]失敗...

我可以使用模式匹配器或其他任何東西做到這一點的驗證?

我用字符串解析(@)後捕捉到一切,然後做了一個equalsIgnoreCase將其與roin.com

這個字符串解析方法效果比較,但有沒有更好的方式來做到這一點?

+4

爲什麼使用正則表達式?取出字符串的最後一個字符,並檢查它們是否是@ @ roin.com' – SJuan76

回答

6

你可以試試這個模式(\\[email protected]\\.com): -

  • \\S+用於匹配\\S+是用來做不願意匹配
  • ?之後的任何非空格字符。它將匹配至少字符數,以滿足
  • \\.用於匹配.
  • 由於.是在正則表達式特殊字符的模式,這就是爲什麼我們要逃避它來搭配它的字面。

所以,下面的代碼: -

String str = "[email protected]"; 

Pattern pattern = Pattern.compile("\\[email protected]\\.com"); 
Matcher matcher = pattern.matcher(str); 

if (matcher.matches()) { 
    System.out.println("Matches"); // Prints this for this email 
} 
+0

謝謝你的回答rohit ...你能告訴我在模式中做什麼是「\\ S +」和「\\」嗎? – user1717230

+0

@ user1717230'\\ S +'用於匹配'@'之前的任何非空格字符。 '\\。'用於轉義'dot'。 '.'在正則表達式中有特殊的含義。所以,你需要逃避.. –

+0

謝謝rohit .... – user1717230

相關問題