(转)c# Regex常用

一个例子:

using System;

using System.Text.RegularExpressions;

namespace ConsoleApplication1

{

  Regex regex=new Regex("^[0-9]{1,2}",RegexOptions.IgnoreCase);

  if(regex.IsMatch("w1"))

  {

    Console.WriteLine("OK");

  }

  Console.Read();

}

上面的代码用来判断字符串以数字开头和结尾,并且最多有2位.

Regex regex=new Regex("^[0-9]{1,2}$");

解释:

这句:声明一个新的Regex.

^表示:匹配字符串开始字符。

$表示:匹配结尾字符。

[0-9]:匹配的数据类型。和\d异曲同工。

{1,2}:匹配数据重复的次数。在这里表示出现了一次或两次。

详情:

一:Regex语法

(1)^,$

匹配数据:1234567

Regex:^[0-9]

结果:1

匹配以数字开头的一个字符

数据改为:h123456

Regex:^[0-9]

结果:无

而当[]里该为a-z,结果就是h了,$和^类似。

另外一种意思,当^在[^n]里面,匹配除了n以为的任意字符。

例如:

匹配数据:4525

Regex:[^45]

结果:2

(2)[]:匹配数据类型

\d:匹配数字字典类型数据,于[0-9]相同。

例如:

匹配数据:1234567

Regex:\d[0-9]

结果:12,34,56 3组(7被过滤掉)

\D:匹配非数字。于[^\d]表示相同。

例如:

匹配数据 :123d

Regex:\D

结果:d

(.)匹配换行以外的任意字符。

\w(小写):匹配字母或数字或下划线或汉字。

\s(小写):匹配任意的空白符。

\W(大写):与小写相反。

(3){}:匹配数据重复次数

*表示匹配零次或更多次,于\d{0,}(表示0次到无限次)相同

例如:

匹配数据:123k4567

Regex:\d*

结果:123,,4567(注意中间的空值)

+表示重复一次或更多次

?表示重复一次或零次

{n}重复n次。

例如:

匹配数据:123k45678

Regex: \d{4}

结果:4567(数字在k后有连续出现过4次,在前面没有)

例如:

匹配数据:12k45678

Regex:\d{4}

结果:12,456,78(从多位到少取,从前往后取,字符分开取,揣摩…)

转自:http://www.cnblogs.com/jorgen/archive/2010/10/14/1851555.html

原文地址:https://www.cnblogs.com/hongjiumu/p/2645710.html