我想檢查一個電子郵件地址是否符合模式:Oracle SQL Reg Exp檢查電子郵件
- 只包括字母,數字和'。'或'_'符號。
- 最後一部分(例如:.com)必須包含2到4個字母。
這是我的註冊截止日期:'[a-zA-Z0-9._][email protected][a-zA-Z0-9._]+.[a-zA-Z]{2,4}'
的問題是,它接受類似%符號,.commmm被接受作爲最後一部分。我怎麼能解決它?
我想檢查一個電子郵件地址是否符合模式:Oracle SQL Reg Exp檢查電子郵件
- 只包括字母,數字和'。'或'_'符號。
- 最後一部分(例如:.com)必須包含2到4個字母。
這是我的註冊截止日期:'[a-zA-Z0-9._][email protected][a-zA-Z0-9._]+.[a-zA-Z]{2,4}'
的問題是,它接受類似%符號,.commmm被接受作爲最後一部分。我怎麼能解決它?
的主要問題實際上是兩個位置:
.
字符類可以匹配任何符號(但換行符)^
和$
,這樣的話你可以匹配更大的字符串中的子字符串。使用
'^[a-zA-Z0-9._][email protected][a-zA-Z0-9._]+[.][a-zA-Z]{2,4}$'
^ ^^^ ^
當您將.
成一對括號,你匹配一個時期。
我想你只需要^
和$
指定字符串的開頭和結尾:
'^[a-zA-Z0-9.][email protected][a-zA-Z0-9.]+.[a-zA-Z]{2,4}$'
您可能要稍微調整規則,電子郵件和域名不能以句點開頭:
'^\w[a-zA-Z0-9.]*@\w[a-zA-Z0-9.]*.[a-zA-Z]{2,4}$'
很高興爲你效勞。如果我的答案對您有幫助,請考慮也是upvoting(請參閱[如何在堆棧溢出?](http://meta.stackexchange.com/questions/173399/how-to-upvote-on-stack-overflow)) 。 –