C#正则表达式

正则表达式原理篇:http://deerchao.net/tutorials/regex/regex.htm#mission  http://www.cnblogs.com/dwlsxj/p/Regex.html

在线测试工具:http://tool.chinaz.com/regex/

C#中简单用法:

l Regex. IsMatch用法

 //简单匹配某单词

            Console.WriteLine("\n\nIsMatch演示:");
            Regex reg = new Regex("aaron");
            Console.WriteLine(string.Format("result1: {0}", reg.IsMatch("my name is aaron.")));     //True
            Console.WriteLine(string.Format("result2: {0}", reg.IsMatch("my name is arron.")));     //False

 

 //默认是区分大小写的,所以下面2个会返回不同的结果

            Console.WriteLine(string.Format("result3: {0}", Regex.IsMatch("my name is aaron.", "Aaron")));      //False
            Console.WriteLine(string.Format("result4: {0}", Regex.IsMatch("my name is arron.", "aaron")));      //False

 

 //这个是不区分大小写的

            Console.WriteLine(string.Format("result3: {0}", Regex.IsMatch("my name is aaron.", "Aaron", RegexOptions.IgnoreCase)));     //True

 

 

l Regex. Replace用法

简单替换某单词

 

//简单替换某单词
            Console.WriteLine("\n\nReplace演示:");
            reg=new Regex("r");
            Console.WriteLine(string.Format("result4: {0}", reg.Replace("my name is arron.", "R")));                            //my name is aRRon.
            Console.WriteLine(string.Format("result4: {0}", reg.Replace("my name is arron.", "R", 1)));//只进行一次替换         //my name is aRron.

 

 

 

l Regex.Match用法

 //**********************Match用法*****************************

复制代码
            Console.WriteLine("\n\nMatch演示:");
            reg = new Regex("aa...");//开头2个字母必须是aa,并且后面跟任意3个字符
            Match m=reg.Match("my name is aaron, aaRON, Aaron");
            while(m.Success)
            {
                Console.WriteLine(m.Value);
                m = m.NextMatch();
                //这里由于默认是区分大小写的,所以
                //  aaron       是Match的
                //  aaRON       也是Match的
                //  Aaron       不会Match
            }
复制代码

 

 

l Regex.Matchs用法

//******************MatchsCollection用法***********************
            Console.WriteLine("\n\nMatchsCollection演示:");
            MatchCollection mc = Regex.Matches("my name is aaron, aaRON, Aaron", "aa...");//开头2个字母必须是aa,并且后面跟任意3个字符

            Console.WriteLine(string.Format("found: {0}", mc.Count)); 

 

基础篇:

1、元字符:https://msdn.microsoft.com/zh-cn/library/ae5bf541(v=vs.90).aspx

 

限定符 描述 模式
.

匹配出换行符以外的任意字符

\d*\.\d

\w

匹配字母、数字、下划线、汉字

"be+"
\s

匹配任意空白符

  
"rai?n"
\d

匹配数字

",\d{3}"
\b

匹配单词开始或结束,它只是匹配一个位置

"\d{2,}"

^

匹配字符串开始

"\d{3,5}"

$

匹配字符串结束

"\d{3,5}"

2、重复次数:默认1次:{1} 如\d和\d{1}等效的

 

代码/语法

说明

*

重复0次或多次

+

重复一次或多次

?

重复零次或1次

{n}

重复n次

{n,}

重复至少n次

{n,m}

重复至少n次,但不多于m次

 

3、分支:相当于if条件中的或运算: 注意  ^\s{2}$|^\d{3}$ 和 ^\s{2}|\d{3}$ 是不一样的

一个分支匹配上了就不会去管后面的分支。好像if(a || b)

4、分组:()

(\d{1,3}){3}\d{3}:这个正则表达式的意思就是把我们分组的小括号里面的东西重复三次,也就是说我们至少匹配3个最多匹配9个数字,后面再加上三个数字

5.反义字符:可以理解为if条件中的!非运算。

\W

匹配任意一个不是字母或数字下划线或汉字的字符

\S

匹配任意一个不是空白符的字符

\D

匹配不是数字的字符

\B

匹配不是单词开头或者结尾的位置

[^X]

匹配除了X以外的任意字符

[^aeiou]

匹配除了aeiou这几个字母以外的任意字符

6、转义字符

如果你想要得到元字符本身的话需要使用“\”来取消这些元字符的特殊意义

有以下特殊字符需要转义: * . ? + $ ^ [ ] ( ) { } | \ /

posted @ 2015-08-04 18:10  谷樵  阅读(254)  评论(0编辑  收藏  举报