驗證 Email 的簡易練習 :
var email = "alice@leetcode.com"; var patten = "^[a-zA-Z\d]+@[a-zA-Z\d]+\.com$"; bool result = Regex.IsMatch(email,patten);
- ^ ➡ 開始符號
- $ ➡ 結束符號
- [ ] ➡ 字元集合,所以可以匹配裡面的任何字元
- a-z ➡ 所有英文小寫字元
- A-Z ➡ 所有英文大寫字元
- d ➡ 數值,即 0~9
- + ➡ 字元需要重複配對
取的符合字串
match.Groups[0] 會存放相符的完整字串
var patten = "^[a-zA-Zd]+@[a-zA-Zd]+.com$"; var match = Regex.Match(email, patten); var result = match.Groups[0].Value;
從符合字串擷取內容
- 使用 ( )
- . 代表任意字元
- match.Groups[1] 1 之後會根據 ( ) 存放符合的片段
https://www.youtube.com/watch?v=n8X9_MgEdCg
var youtubeUrl = "https://www.youtube.com/watch?v=n8X9_MgEdCg"; var patten = @"^https:\/\/www\.youtube\.com\/watch\?v=(.+)$"; var match = Regex.Match(youtubeUrl, patten); match.Groups[1].Value;
使用 | 區分成兩個區塊
因為無法同時驗證Email有 + 號 跟 沒 + 號的 情況 所以使用 | 成為兩個路徑
([a-zA-Z\d.]+)@([a-zA-Z\d.]+.com)|([a-zA-Z\d.]+)\+[+a-zA-Z\d.]+@([a-zA-Z\d.]+.com)
使用 ? 來忽略可能不出現的區塊
([a-zA-Z\d.]+)(\+[+a-zA-Z\d.]+)?@([a-zA-Z\d.]+.com)
https://regex101.com/
http://ccckmit.wikidot.com/regularexpression