C#正则表达式使用介绍

    技术2025-11-03  6

    一、使用方法:        a.后台处理:         引用命名空间using System.Text.RegularExpressions;         string valEx = @"^/d+$";         if (!Regex.IsMatch(txtVal.Text.Trim(), valEx))         {            txtVal.Focus();            return ;          }         b.javascript方法处理            exec 方法      用正则表达式模式在字符串中运行查找,并返回包含该查找结果的一个数组。       function RegExpTest()   {   var ver = Number(ScriptEngineMajorVersion() + "." + ScriptEngineMinorVersion())   if (ver >= 5.5){ // 测试 JScript 的版本。   var src = "The rain in Spain falls mainly in the plain.";   var re = //w+/g; // 创建正则表达式模式。   var arr;   while ((arr = re.exec(src)) != null)   document.write(arr.index + "-" + arr.lastIndex + arr + "/t");   }   else{   alert("请使用 JScript 的更新版本");   }   }   返回值:0-3The 4-8rain 9-11in 12-17Spain 18-23falls 24-30mainly 31-33in 34-37the 38-43plain         test 方法              返回一个 Boolean 值,它指出在被查找的字符串中是否存在模式。                   function TestDemo(re, s)   {   var s1; // 声明变量。   // 检查字符串是否存在正则表达式。   if (re.test(s)) // 测试是否存在。   s1 = " contains "; // s 包含模式。   else   s1 = " does not contain "; // s 不包含模式。   return("'" + s + "'" + s1 + "'"+ re.source + "'"); // 返回字符串。   }   函数调用:document.write (TestDemo(/ain+/ ,"The rain in Spain falls mainly in the plain."));   返回值:'The rain in Spain falls mainly in the plain.' contains 'ain+          match 方法            使用正则表达式模式对字符串执行查找,并将包含查找的结果作为数组返回。            function MatchDemo()   {   var r, re; // 声明变量。   var s = "The rain in Spain falls mainly in the plain";   re = /ain/i; // 创建正则表达式模式。   r = s.match(re); // 尝试匹配搜索字符串。   return(r); // 返回第一次出现 "ain" 的地方。   }   返回值:ain            search 方法                  返回与正则表达式查找内容匹配的第一个子字符串的位置。 function SearchDemo()   {   var r, re; // 声明变量。   var s = "The rain in Spain falls mainly in the plain.";   re = /falls/i; // 创建正则表达式模式。   r = s.search(re); // 查找字符串。   return(r); // 返回 Boolean 结果。   }   返回值:18 二、常见正则:      ========= 常用正则式 匹配中文字符的正则表达式: [/u4e00-/u9fa5] 匹配双字节字符 ( 包括汉字在内 ) : [^/x00-/xff] 匹配空行的正则表达式: /n[/s| ]*/r 匹配 HTML 标记的正则表达式: /<(.*)>.*<///1>|<(.*) //>/ 匹配首尾空格的正则表达式: (^/s*)|(/s*$) 匹配 IP 地址的正则表达式: /(/d+)/.(/d+)/.(/d+)/.(/d+)/g // 匹配 Email 地址的正则表达式: /w+([-+.]/w+)*@/w+([-.]/w+)*/./w+([-.]/w+)* 匹配网址 URL 的正则表达式: http://(/[/w-]+/.)+[/w-]+(/[/w- ./?%&=]*)? sql 语句: ^(select|drop|delete|create|update|insert).*$ 1 、非负整数: ^/d+$ 2 、正整数: ^[0-9]*[1-9][0-9]*$ 3 、非正整数: ^((-/d+)|(0+))$ 4 、负整数: ^-[0-9]*[1-9][0-9]*$ 5 、整数: ^-?/d+$ 6 、非负浮点数: ^/d+(/./d+)?$ 7 、正浮点数: ^((0-9)+/.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*/.[0-9]+)|([0-9]*[1-9][0-9]*))$ 8 、非正浮点数: ^((-/d+/./d+)?)|(0+(/.0+)?))$ 9 、负浮点数: ^(-(( 正浮点数正则式 )))$ 10 、英文字符串: ^[A-Za-z]+$ 11 、英文大写串: ^[A-Z]+$ 12 、英文小写串: ^[a-z]+$ 13 、英文字符数字串: ^[A-Za-z0-9]+$ 14 、英数字加下划线串: ^/w+$ 15 、 E-mail 地址: ^[/w-]+(/.[/w-]+)*@[/w-]+(/.[/w-]+)+$ 16 、 URL : ^[a-zA-Z]+://(/w+(-/w+)*)(/.(/w+(-/w+)*))*(/?/s*)?$ 或: ^http:[A-Za-z0-9]+/.[A-Za-z0-9]+[//=/?%/-&_~`@[/]/':+!]*([^<>/"/"])*$ 17 、邮政编码: ^[1-9]/d{5}$ 18 、中文: ^[/u0391-/uFFE5]+$ 19 、电话号码: ^((/(/d{2,3}/))|(/d{3}/-))?(/(0/d{2,3}/)|0/d{2,3}-)?[1-9]/d{6,7}(/-/d{1,4})?$ 20 、手机号码: ^((/(/d{2,3}/))|(/d{3}/-))?13/d{9}$ 21 、双字节字符 ( 包括汉字在内 ) : ^/x00-/xff 22 、匹配首尾空格: (^/s*)|(/s*$) (像 vbscript 那样的 trim 函数) 23 、匹配 HTML 标记: <(.*)>.*<///1>|<(.*) //> 24 、匹配空行: /n[/s| ]*/r 25 、提取信息中的网络链接: (h|H)(r|R)(e|E)(f|F) *= *('|")?(/w|//|//|/.)+('|"| *|>)? 26 、提取信息中的邮件地址: /w+([-+.]/w+)*@/w+([-.]/w+)*/./w+([-.]/w+)* 27 、提取信息中的图片链接: (s|S)(r|R)(c|C) *= *('|")?(/w|//|//|/.)+('|"| *|>)? 28 、提取信息中的 IP 地址: (/d+)/.(/d+)/.(/d+)/.(/d+) 29 、提取信息中的中国手机号码: (86)*0*13/d{9} 30 、提取信息中的中国固定电话号码: (/(/d{3,4}/)|/d{3,4}-|/s)?/d{8} 31 、提取信息中的中国电话号码(包括移动和固定电话): (/(/d{3,4}/)|/d{3,4}-|/s)?/d{7,14} 32 、提取信息中的中国邮政编码: [1-9]{1}(/d+){5} 33 、提取信息中的浮点数(即小数): (-?/d*)/.?/d+ 34 、提取信息中的任何数字 : (-?/d*)(/./d+)? 35 、 IP : (/d+)/.(/d+)/.(/d+)/.(/d+) 36 、电话区号: /^0/d{2,3}$/ 37 、腾讯 QQ 号: ^[1-9]*[1-9][0-9]*$ 38 、帐号 ( 字母开头,允许 5-16 字节,允许字母数字下划线 ) : ^[a-zA-Z][a-zA-Z0-9_]{4,15}$ 39 、中文、英文、数字及下划线: ^[/u4e00-/u9fa5_a-zA-Z0-9]+$ 三、了解正则表达语法:           转义匹配语法 : 转义语法     涉及字符( 语法解释)     语法例子 “/ ”+ 实际字符     / . * + ? | ( ) { }^ $     例如:// 匹配字符“/ ” /n     匹配换行       /r     匹配回车       /t     匹配水平制表符       /v     匹配垂直制表符       /f     匹配换页       /nnn     匹配一个8 进制ASCII       /xnn     匹配一个16 进制ASCII       /unnnn     匹配4 个16 进制的Uniode       /c+ 大写字母     匹配Ctrl- 大写字母     例如:/cS 匹配Ctrl+S     重复匹配语法: 重复语法     语法解释     语法例子 {n}     匹配n 次字符     /d{3} 匹配/d/d/d, 不匹配/d/d 或/d/d/d/d {n,}     匹配n 次和n 次以上     /w{2} 匹配/w/w 和/w/w/w 以上, 不匹配/w {n,m}     匹配n 次上m 次下     /s{1,3} 匹配/s,/s/s,/s/s/s, 不匹配/s/s/s/s ?     匹配0 或1 次     5? 匹配5 或0 ,不匹配非5 和0 +     匹配一次或多次     /S+ 匹配一个以上/S ,不匹配非一个以上/S *     匹配0 次以上     /W* 匹配0 以上/W ,不匹配非N*/W    字符定位语法: 重复语法     语法解释     语法例子 ^     定位后面模式开始位置       $     前面模式位于字符串末端       /A     前面模式开始位置       /z     前面模式结束位置       /Z     前面模式结束位置( 换行前)       /b     匹配一个单词边界       /B     匹配一个非单词边界       字符匹配语法: 字符语法     语法解释     语法例子 /d     匹配数字(0~9 )     ‘/d ’匹配8, 不匹配12 ; /D     匹配非数字     ‘/D ’匹配c, 不匹配3 ; /w     匹配任意单字符     ‘/w/w ’ 匹配A3, 不匹配@3 ; /W     匹配非单字符     ‘/W ’匹配@, 不匹配c ; /s     匹配空白字符     ‘/d/s/d ’匹配3 d, 不匹配abc ; /S     匹配非空字符     ‘/S/S/S ’匹配A#4, 不匹配3 d ; .     匹配任意字符     ‘.... ’匹配A$ 5, 不匹配换行 ; [ …]     匹配括号中任意字符     [b-d] 匹配b 、c 、d, 不匹配e ; [^ …]     不匹配括号内字符     [^b-z] 匹配a, 不匹配b-z 的字符;

    最新回复(0)