C#正则表达式使用介绍

来源:互联网 发布:淘宝网耐克篮球鞋 编辑:程序博客网 时间:2024/05/22 12:59

一、使用方法:

       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 的字符;

原创粉丝点击