2013-10-22 42 views
1

的n個我有一個簡單的正則表達式檢測在以下任何一種格式「domain.com的電子郵件地址:正則表達式 - 匹配電子郵件域,但只有在OCCURENCES

[email protected] 
[email protected] 
[email protected] 
[email protected] 

,使得這個正則表達式對我來說寫作爲:

\b([a-z0-9_\.-]+)@domain.com 

該表達式將檢測並匹配上述任何一個的第一個發生。

但是,我希望正則表達式匹配之後,比方說,檢測到10次發生。

例如,用戶提交文檔中包含5個電子郵件地址的文檔。 在這種情況下,表達式應該忽略文檔。 但是,如果用戶在文檔中提交了包含10個或更多電子郵件地址的文檔,則該表達式應檢測到該情況。

我已經嘗試了使用{10,}量詞的無數可能的解決方案,其中一些例子來自這個網站,但我認爲它與我分組表達式的方式有關這導致它失敗。

您的幫助將不勝感激。

回答

0

你可以使用這個表達式:當您訪問恢復參照#1

(?:[^@][email protected]\S+){10}\s+([\w.-]+)([email protected]\.com) 

現在,它會給你確切地後出現10名的電子郵件部分。

+0

謝謝先生。這正是我所期待的。非常感激。 – user2893157

+0

不客氣,很高興它爲你解決。 – anubhava

0

您可以爲每個匹配的域使用一個計數器,然後包含一個域,當且僅當它匹配至少10次。

0

如果兩個電子郵件地址之間可以有任何字符,則使用((yourregexp).*){10,}

((\b([a-z0-9_\.-]+)@domain.com).*){10} 
+1

非常感謝。如果電子郵件地址全部在線寫入,那麼您的解決方案非常有用,效果很好。 – user2893157