2013-02-14 76 views
0
"Max Mustermann" <[email protected]> 
[email protected] 
Max <[email protected]> 

我需要一個正則表達式,它與箭頭括號(包括括號)外的匹配相匹配。 之後應該刪除比賽。郵件地址的正則表達式

更換它應該是這樣的後:

"Max Mustermann" <[email protected]> => [email protected] 
+0

雖然不是同一個問題,請注意,完全解析所有形式的電子郵件地址很難,http://stackoverflow.com/questions/46155/validate-email-address-in-javascript。 – hlovdal 2013-02-14 11:46:32

回答

0

最簡單的解決辦法是尋找

[^<]*<([^>]*)>.* 

,並替換成\1$1,這取決於你的正則表達式引擎。

這將刪除所有內容,直到第一個<以及從下一個>開始的所有內容,直到字符串結尾。

讓我們只希望引用名稱內不會有括號。

+0

完美,它的作品。 – 2013-02-14 11:44:25

+0

它並不是真的。例如,裸體'email @ domain.com'不匹配。 – mvp 2013-02-14 11:45:20

+0

@mvp:當然不是故意的。它爲什麼要匹配? – 2013-02-14 17:45:05

0

這應該工作,但要注意,這是很simplified

(?:[^<]*<)?([^>]+).* 

電子郵件的答案將在$1

例如,在Perl使用:

$email =~ s/(?:[^<]*<)?([^>]+).*/$1/; 

參見RegexPlanet online demo

+0

嗨,表達式不起作用結果是以下字符串[email protected]> – 2013-02-14 11:56:12

+0

固定,添加鏈接到fiddle.re與大量的測試輸入。 – mvp 2013-02-14 12:27:41

相關問題