我正在使用PHP查找給定文本中的電子郵件地址。 我現在的正則表達式是:正則表達式在文本中查找電子郵件
'/([\w+\.]*\[email protected][\w+\.]*\w+[\w+\-\w+]*\.\w+)/is'
它消耗了大量的CPU資源。是否有任何優化和低資源利用率(即CPU)RegEx用於查找給定文本中的有效電子郵件。
我正在使用PHP查找給定文本中的電子郵件地址。 我現在的正則表達式是:正則表達式在文本中查找電子郵件
'/([\w+\.]*\[email protected][\w+\.]*\w+[\w+\-\w+]*\.\w+)/is'
它消耗了大量的CPU資源。是否有任何優化和低資源利用率(即CPU)RegEx用於查找給定文本中的有效電子郵件。
試試這個
/[-\d\w\W][email protected][-\d\w.+_]+.\w{2,4}/
匹配:
電子郵件包含符號也。這個正則表達式不會檢查這個。 –
但不是這些人物! #$%&'* + -/=?^_'{| }〜 –
請參閱http://stackoverflow.com/questions/2049502/what-characters-are-allowed-in-email-address – keziah
這
測試/^[^@][email protected][a-z]+(\.[a-z]+)+$/
比你的要好。
比方說,我們要測試的這款電郵:[email protected]
在成功的情況下,我的正則表達式執行14步找到解決方案。
您在22步。
比方說,我們要測試的這款電郵:[email protected]
我的正則表達式執行31步驟和失敗
此致(這應該是用^
和$
分隔符修改,否則它會匹配這個作爲好的一個)執行292個步驟並失敗!
你正在使用什麼應用程序來檢查你的正則表達式?你能告訴我,所以我也可以檢查我犯的錯誤。 –
@Siddharthsharma:使用regex101.com – DonCallisto
謝謝!!!!! –
可能使用[使用正則表達式驗證電子郵件地址]的副本(http://stackoverflow.com/questions/201323/using-a-regular-expression-to-validate-an-email-address) – RAnders00
使用@ RAnders00提到的正則表達式,或者你需要使用原子組或佔有量詞,否則會有太多的回溯__(你的正則表達式雖然不正確)__ – rock321987
感謝@ RAnders00指向那個鏈接.. –