先交代一下背景,最近工作中經常用到正則表達式,而正則表達式這個東西我個人覺得很雞肋,不用吧,有些功能實現起來會很麻煩。用吧,又不是說工作中經常用到,只是有時候有些需要求用到而已。但是正則表達式只要一段時間不用,就會被遺忘,甚至是忘的一干二凈。為了一定程度上解決這個雞肋的問題,就有了這篇博客和我打算寫...
先交代一下背景,最近工作中經常用到正則表達式,而正則表達式這個東西我個人覺得很雞肋,不用吧,有些功能實現起來會很麻煩。用吧,又不是說工作中經常用到,只是有時候有些需要求用到而已。但是正則表達式只要一段時間不用,就會被遺忘,甚至是忘的一干二凈。為了一定程度上解決這個雞肋的問題,就有了這篇博客和我打算寫的這個開源的正則表達式驗證工具的想法。關於正則網上的資料其實已經很多了,之所以還寫這篇博客只是為了記錄一些現在或者以後工作中可能會用到的正則,然後分享出來,同時也是希望為.net開源做一些事情。
v0.寫在前面
記得上一次正兒八經的用正則表達式還是三年前,雖然期間也零零散散的用過一些,但是基本已經忘的差不多了,所以這篇博客中如果有什麼不對的地方歡迎和感謝大家指正!這裡我只是寫出了一些個人工作中常用到的正則匹配,如果同時有園友願意貢獻一份力量參與到正則開源工具的編碼中,我會非常歡迎。
最近園子里的"月經貼"越來越多,我就很納悶,這群人是不是閑的蛋疼?你有時間在這"指點江山"批評這個語言抨擊那個環境的,你還不如張開雙手擁抱.net開源大潮呢。隨著.net開源的到來,.net的春天也來了,我們應該伸出雙手為.net開源做一些事情,讓.net社區越來越開源。當然這是題外話,那些月經貼也不關我啥事。
v1.源碼地址
https://github.com/toutouge/TouTou.RegexTool
v2.正文開始
2.1.: 通用匹配
C#通用匹配規則,可以在調用的時候傳入源字元串和對應的正則
/// <summary> /// 檢測字元串中是否包含符合正則的子集 /// </summary> /// <param name="source">源字元串</param> /// <param name="reg">正則, e.g. \d+</param> /// <returns>true:包含,反之不包含</returns> publicbool CheckContainsByReg(string source, string reg) { returnRegex.Match(source, reg).Success; }
/// <summary> /// 檢測整個字元串是否能匹配正則,而不是包含 /// </summary> /// <param name="source">源字元串</param> /// <param name="reg">正則, e.g. ^\d+$</param> /// <returns>true:匹配,反之不匹配</returns> publicbool CheckStringByReg(string source, string reg) { Regex rg = newRegex(reg, RegexOptions.IgnoreCase); return rg.IsMatch(source); }
/// <summary> /// 從指定字元串中過濾出第一個符合正則匹配的子集 /// </summary> /// <param name="source">源字元串</param> /// <param name="reg">正則, e.g. \d+</param> /// <returns>源字元串的第一個匹配的子集</returns> publicstring GetFirstStringByReg(string source, string reg) { returnRegex.Match(source, reg).Groups[0].Value; }
/// <summary> /// 從指定字元串中過濾出所有符合正則匹配的子集 /// </summary> /// <param name="source">源字元串</param> /// <param name="reg">正則, e.g. \d+</param> /// <returns>true:匹配,反之不匹配</returns> publicList<string> GetStringByReg(string source, string reg) { var regex = Regex.Matches(source, reg); List<string> list =newList<string>(); foreach (Match item in regex) { list.Add(item.Value); }
return list; } |
2.2.: 數字匹配
C#正則表達式根據各種需求匹配數字