現場演示:http://regex101.com/r/wW6wC4正則表達式來檢測連字符
我想添加一個正則表達式,它允許電子郵件地址,如:
[email protected]
([\w+\.][email protected][\w]{1,})(\.)([0-9a-zA-Z\.\-]{1,})
^---- Thought this would allow hyphens...
我缺少什麼嗎?
現場演示:http://regex101.com/r/wW6wC4正則表達式來檢測連字符
我想添加一個正則表達式,它允許電子郵件地址,如:
[email protected]
([\w+\.][email protected][\w]{1,})(\.)([0-9a-zA-Z\.\-]{1,})
^---- Thought this would allow hyphens...
我缺少什麼嗎?
您的模式要求在一段時間後出現連字符。雖然第二模式不要求該地址的第二部分包含了一段
([\w+.][email protected][\w.-]+)
:試試這個:
([\w+.][email protected][\w-]{1,})(\.)([0-9a-zA-Z.-]+)
或更簡單。
你的正則表達式:
([\w+\.][email protected][\w]{1,})(\.)([0-9a-zA-Z\.\-]{1,})
這將使連字符作爲唯一的最後一個字符。
要允許它在任何地方使用:
^([\w+.-][email protected][\w-])(\.)([0-9a-zA-Z.-])$
或允許它僅之間使用(除第一個和最後的位置):
^[\w+.-]*@\w[\w-]*\.[\w-]*[0-9a-zA-Z.]+$
這不會只允許一個字符出現在最後? – Cfreak
這不適用於他的示例。我認爲你已經在錯誤的角色類中加了'-'。 – eldarerathis
是的,我意識到並糾正了(希望) – anubhava
你連字符的代碼將出現在在域名先內後外檢查字符段。您需要之前將其添加到匹配塊域名:
([\w+\.][email protected][\w\-]{1,})(\.)([0-9a-zA-Z\.\-]{1,})
^^---- check here as well.
在現實中,我將尋找一個更全面的電子郵件正則表達式 - 你有一個似乎並不足夠強大的恕我直言。
你不匹配「[email protected]」形式的字符串,正如你所看到的不是你想要的。
([\w+\.]+)@([0-9a-zA-Z\.\-]{1,})\.com
([\w+\.]+)@([0-9a-zA-Z\.\-]{1,})\.([\w]{1,})
它確實允許使用連字符,但是您已經定位了它,因此它只允許在'@'後面的第一個'.'之後使用連字符。 – Rawling