我正在通過確保他們有一個特定的大學子域來驗證電子郵件地址,例如,如果用戶說他們出席了牛津大學,我想檢查他們的電子郵件以.ox.ac.uk結尾正則表達式爲大學電子郵件
如果我將'.ox.ac.uk'部分存儲爲變量,我該如何結合這與一個正則表達式來檢查整個電子郵件是有效的,並在變量後綴結束?
非常感謝!
我正在通過確保他們有一個特定的大學子域來驗證電子郵件地址,例如,如果用戶說他們出席了牛津大學,我想檢查他們的電子郵件以.ox.ac.uk結尾正則表達式爲大學電子郵件
如果我將'.ox.ac.uk'部分存儲爲變量,我該如何結合這與一個正則表達式來檢查整個電子郵件是有效的,並在變量後綴結束?
非常感謝!
我們使用這個電子郵件方式(從這個regular-expressions.info article派生):
^[\w!#$%&'*+/=?^`{|}~-]+(?:\.[\w!#$%&'*+/=?^`{|}~-]+)*@(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?\.)+[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?$`
你應該能夠將其與你的需要後綴擴展:
^[\w!#$%&'*+/=?^`{|}~-]+(?:\.[\w!#$%&'*+/=?`{|}~-]+)*@(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?\.)+(?:\.ox\.ac\.uk)$`
注意,我更換了TLD部分[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?
與您所需的後綴(?:\.ox\.ac\.uk)
(\.
僅用於匹配點)
編輯:one附加說明:如果您使用String#matches(...)
或Matcher#matches()
,則不需要前導^和尾隨$,因爲整個字符串必須與任何匹配。
謝謝。我是否正確地使用Java來逃避\ \ – Jonny
@Jonny是的,我們在db中保留了這個正則表達式,這就是爲什麼在這個例子中沒有\\。在Java字符串中,您可以避開所有反斜槓:) – Thomas
我正在使用 String expression =「^ [\\ w!#$%&'* +/=?^ {{}〜 - ] +( ?:\\ \\ W#$%&'* +/='{|}〜 - !?] +)* @(:?[A-ZA-Z0-9](:[A-ZA -Z0-9 - ] * [A-ZA-Z0-9])\\)+(?:?。牛\\ \\ \\交流UK)$'「; 正如你所建議的那樣,但它似乎並不匹配,因爲它表示它沒有輸入[email protected],它應該成功 – Jonny
這張支票的價值是什麼,你確定它比喜歡使用他們的'gmail.com'帳戶或任何其他用戶的滋擾因子超過? – tripleee