學(xué)習(xí)正則表達(dá)式(js、C#)
更新時(shí)間:2015年12月13日 10:01:49 作者:iceKnight
學(xué)習(xí)正則表達(dá)式,針對(duì)js正則表達(dá)式和C#正則表達(dá)式進(jìn)行學(xué)習(xí),想要熟練掌握正則表達(dá)式可以參考本文
js中的正則表達(dá)式使用
function myValid() { var errorMsg = ""; var res = true; //拿到要驗(yàn)證的值. var receiveName = $("#receiveName").val();//姓名 var receiveMobile = $("#tMobile").val();//手機(jī)號(hào) var validCode = $("#validCode").val();//驗(yàn)證碼 var regName = /^[\u4e00-\u9fa5]{2,4}$/;//驗(yàn)證姓名 var regMobile = /^1[3|4|5|7|8][0-9]\d{8}$/;//驗(yàn)證手機(jī) var regCode = /^\d{4}$/;//驗(yàn)證碼 if (!regName.test(receiveName)) { errorMsg += "姓名格式不正確;\n\r"; res = false; } if (!regMobile.test(receiveMobile)) { errorMsg += "手機(jī)號(hào)格式不正確;\n\r"; res = false; } if (!regCode.test(validCode)) { errorMsg += "請(qǐng)輸入4位的數(shù)字驗(yàn)證碼;\n\r"; res = false; } if (!res) { $.ligerDialog.error(errorMsg, "錯(cuò)誤提示"); } return res; }
C#中的正則表達(dá)式使用
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace 正則表達(dá)式 { using System.Text.RegularExpressions;//正則表達(dá)式的命名空間 class Program { static void Main(string[] args) { /* * 正則的匹配原則: * 1.只關(guān)注有沒有能夠進(jìn)行匹配的字符串,而不關(guān)注它的位置,及其它不能匹配的部分。 * 2.貪婪模式:正則會(huì)盡可能多的進(jìn)行匹配,也就意味著它會(huì)匹配到能夠進(jìn)行匹配的最后一個(gè)字符串 */ while(true) { string str = Console.ReadLine(); #region 元字符_占位符 //方法的作用是 判斷str是否匹配 自定義的正則表達(dá)式規(guī)則 //1. .:代表一個(gè)字符占位,可以代表任意一個(gè)字符,必須傳入一個(gè)字符,可以是中文 Console.WriteLine(Regex.IsMatch(str, "b.g")); //2.[]:代表一個(gè)指定范圍的單個(gè)字符,你可以指定間斷的值,也可以指定連續(xù)的范圍: 0-9 A-Z a-z 合法字符:0-9 A-Z a-z _ Console.WriteLine(Regex.IsMatch(str, "b[0-9]g")); //在正則里面,^只能寫在開頭,如果在中間寫,^就是一個(gè)普通的字符了 Console.WriteLine(Regex.IsMatch(str, "b[0-9A-Z^a-z_]g")); Console.WriteLine(Regex.IsMatch(str, "b[^0-9A-Za-z_^]g")); //這里[0-z]會(huì)包含0-z之間的所有字符,也包含一些特殊符號(hào) //正在分析“b[9-1]g”- [x-y] 范圍的順序顛倒。 只能按ASCII碼的順序從小到大 Console.WriteLine(Regex.IsMatch(str, "b[9-1]g")); Console.WriteLine(Regex.IsMatch(str, "b[0-9-]g")); // 11-19 Console.WriteLine(Regex.IsMatch(str, "[11-19]")); // 1 1-1 9 Console.WriteLine(Regex.IsMatch(str, "b[^0-9]g")); // |:或者 Console.WriteLine(Regex.IsMatch(str, "[0-9][0-9]|[0-9][0-9][0-9]")); //hjasdgf1234fjhadsjfhas // 如果涉及到嚴(yán)格的位數(shù)匹配,就需要添加 開始 ^和結(jié)束$:代表字符從開始到結(jié)束必須嚴(yán)格的匹配正則 Console.WriteLine(Regex.IsMatch(str, "^[0-9][0-9]$|^[0-9][0-9][0-9]$")); //包含在[]里面的都是普通字符,而不是元字符,除了^--需要后面有內(nèi)容,如果需要匹配,則可以考慮使用轉(zhuǎn)義\ Console.WriteLine(Regex.IsMatch(str, @"^\^$")); Console.WriteLine(Regex.IsMatch(str, "^\\^$")); #endregion #region 元字符_修飾符 // *:它不是一個(gè)字符占位,說明它本身并不代表一個(gè)字符,它是用來修飾 *前面的子表達(dá)式出現(xiàn)0次或者多次:子表達(dá)式就是默認(rèn)指*前面的那一個(gè)字符,如果需要代表多個(gè),就使用()包含 Console.WriteLine(Regex.IsMatch(str, "ab*g")); Console.WriteLine(Regex.IsMatch(str, "^(ab)*g$")); //+:它不是一個(gè)字符占位,說明它本身并不代表一個(gè)字符,它是用來修飾 +前面的子表達(dá)式出現(xiàn)1次或者多次:子表達(dá)式就是默認(rèn)指+前面的那一個(gè)字符,如果需要代表多個(gè),就使用()包含 Console.WriteLine(Regex.IsMatch(str, "a+g")); //? :它不是一個(gè)字符占位,說明它本身并不代表一個(gè)字符,它是用來修飾 ?前面的子表達(dá)式出現(xiàn)0次或者1次:子表達(dá)式就是默認(rèn)指?前面的那一個(gè)字符,如果需要代表多個(gè),就使用()包含 Console.WriteLine(Regex.IsMatch(str, "^a?g$")); // {n,m}:{n,m}它不是一個(gè)字符占位,說明它本身并不代表一個(gè)字符,它是用來修飾{n,m}前面的子表達(dá)式最少出現(xiàn)n次,最多出現(xiàn)m次 Console.WriteLine(Regex.IsMatch(str, "^[0-9]{3,4}$")); //{n}:它不是一個(gè)字符占位,說明它本身并不代表一個(gè)字符,它是用來修飾{n}前面的子表達(dá)式只能出現(xiàn)n次 Console.WriteLine(Regex.IsMatch(str, "^[1-9][0-9]{17}$|^[0-9]{15}$|^[0-9]{17}[xX]$")); //{n,}:它不是一個(gè)字符占位,說明它本身并不代表一個(gè)字符,它是用來修飾{n,}前面的子表達(dá)式最少出現(xiàn)n次,最多沒有限制 Console.WriteLine(Regex.IsMatch(str, "^[0-9]{3,}$")); Console.WriteLine(Regex.IsMatch(str, "^q*$")); #endregion //在c#中判斷登錄名是是否包含特殊符號(hào):[^0-9A-Za-z_] :也不能包含中文 #region 簡(jiǎn)寫表達(dá)式 //\d:代表一個(gè)數(shù)字,等同于[0-9] Console.WriteLine(Regex.IsMatch(str, @"^\d{3,}$")); //\D:非數(shù)字 Console.WriteLine(Regex.IsMatch(str, @"\D")); //\s:空字符:空格,制表位,換行 Console.WriteLine(Regex.IsMatch(str, @"\s")); //\S:非空白字符 Console.WriteLine(Regex.IsMatch(str, @"\S")); // \w:[0-9 a-z A-Z _ 中文] Console.WriteLine(Regex.IsMatch(str, @"\w")); //\W:除了[0-9 a-z A-Z _ 中文]之外的特殊符號(hào) Console.WriteLine(Regex.IsMatch(str, @"\W")); #endregion } //判斷字符串是否為正確的國(guó)內(nèi)電話號(hào)碼,不考慮分機(jī)。 //010-8888888或010-88888880或010xxxxxxx //0335-8888888或0335-88888888(區(qū)號(hào)-電話號(hào)) //10086、10010、95595、95599、95588(5位) //13888888888(11位都是數(shù)字) while (true) { string str = Console.ReadLine(); //不要試圖一步到位,應(yīng)該一個(gè)一個(gè)來進(jìn)行匹配 Console.WriteLine(Regex.IsMatch(str,@"^\d{3,4}[-]?\d{7,8}$|^[1-9]\d{4}$|^1[3-9]\d{9}$")); } //驗(yàn)證用戶輸入的電子郵箱的合法性 wuhu0723@126.com while (true) { string str = Console.ReadLine(); //不要試圖一步到位,應(yīng)該一個(gè)一個(gè)來進(jìn)行匹配 Console.WriteLine(Regex.IsMatch(str, @"^[0-9A-Za-z_]+[@][0-9A-Za-z_]+[.][A-Za-z]{2,5}$")); } } } }
以上就是關(guān)于正則表達(dá)式的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助。
您可能感興趣的文章:
- C#正則表達(dá)式匹配與替換字符串功能示例
- C#基于正則表達(dá)式抓取a標(biāo)簽鏈接和innerhtml的方法
- C#基于正則表達(dá)式實(shí)現(xiàn)獲取網(wǎng)頁(yè)中所有信息的網(wǎng)頁(yè)抓取類實(shí)例
- C#使用正則表達(dá)式抓取網(wǎng)站信息示例
- C#中如何利用正則表達(dá)式判斷字符
- C#中常用的正則表達(dá)式實(shí)例
- C#中正則表達(dá)式的3種匹配模式
- 談?wù)凜# replace在正則表達(dá)式中的意義
- 常用C#正則表達(dá)式匯總介紹
- C#基于正則表達(dá)式刪除字符串中數(shù)字或非數(shù)字的方法
相關(guān)文章
Java/Js下使用正則表達(dá)式匹配嵌套Html標(biāo)簽
以前寫過一篇文章講解如何使用正則表達(dá)式完美解決Html嵌套標(biāo)簽的匹配問題(使用正則表達(dá)式匹配嵌套Html標(biāo)簽),但是里頭用到了平衡組這樣的高級(jí)特性,貌似只有DotNet還有Perl正則引擎支持,因此通用性不高。2010-08-08一文搞懂正則表達(dá)式基礎(chǔ)語(yǔ)法以及如何應(yīng)用
正則表達(dá)式是一種描述字符串結(jié)構(gòu)的語(yǔ)法規(guī)則,是用于匹配字符串中字符組合的模式,同時(shí)正則表達(dá)式也是對(duì)象,下面這篇文章主要給大家介紹了關(guān)于如何通過一文搞懂正則表達(dá)式基礎(chǔ)語(yǔ)法以及如何應(yīng)用的相關(guān)資料,需要的朋友可以參考下2022-09-09正則表達(dá)式日常收集整理(簡(jiǎn)單且實(shí)用)
正則表達(dá)式,又稱正規(guī)表示法、常規(guī)表示法。正則表達(dá)式的功能非常的強(qiáng)大,下面是小編日常收集整理的有關(guān)正則表達(dá)式常用知識(shí),感興趣的朋友一起學(xué)習(xí)吧2016-08-08JavaScript正則表達(dá)式校驗(yàn)非零的負(fù)整數(shù)實(shí)例
本文分享了JavaScript正則表達(dá)式(^-[1-9]\d*$)校驗(yàn)非零的負(fù)整數(shù)實(shí)例代碼,代碼簡(jiǎn)單易懂,需要的朋友可以看下2016-12-12