Regular Expression (1) 簡易驗證功能練習

      在〈Regular Expression (1) 簡易驗證功能練習〉中留言功能已關閉

驗證 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

print