2009-09-12 45 views
1

當我遇到路障試圖檢查此如何檢查網址並使用正則表達式拒絕電子郵件?

(?<http>(http|ftp|https):\/\/)?(?<address>([\w-]+\.)+[\w-]+(/[\w- ./?%&=]*)?) 

而拒絕表達是否含有@符號。

我已經嘗試過許多變化,但沒有成功。

如果我可以告訴它確保其中沒有@個字符,但我不想要求使用[^@]語法的字符,那會起作用。那麼如何讓正則表達式同時接受\w並拒絕@。據我所知,我無法做到[\w^@]

我的困難是我正在使用正則表達式替換。那麼你是否建議我使用一個佔位符,然後再用十次匹配呢?

+0

有效和無效文本的一些例子將會有所幫助 – 2009-09-12 00:28:08

+0

www.cnn.com是一個有效的地址[email protected]不是也不應該被改變。 – Middletone 2009-09-12 00:29:47

+0

即使您不想允許用戶名@網址,http://www.example.com/[email protected]仍然是有效地址。在正則表達式中,驗證電子郵件地址或URL是非常困難的。允許一個裸露的主機名作爲一個URL工作,這使得它更不可能。 – bobince 2009-09-12 02:28:08

回答

3

你不需要把所有東西都變成一個正則表達式。例如,您可以與您現有的正則表達式匹配,然後使用輔助正則表達式檢查該字符串沒有@ -sign。

+0

是的,不需要是一個任務的正則表達式。多重正則表達式可能更清晰。也許這個鏈接可以提供更多的提示:http://www.regular-expressions.info/email.html – 2009-09-12 16:27:48

相關問題