• 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(" IsMatch演示:");
                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(" Replace演示:");
                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(" Match演示:");
                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(" MatchsCollection演示:");
                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}"
    

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

    "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、转义字符

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

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

  • 相关阅读:
    十七、mysql数据库备份
    消费端ACK和重回队列
    RabbitMQ TTL、死信队列
    消费端限流策略
    029异常处理
    028class_part2
    027class_part1
    026json和pickle,xml模块
    025__name__变量和目录结构规范
    024模块的概念
  • 原文地址:https://www.cnblogs.com/lxf1117/p/4702744.html
Copyright © 2020-2023  润新知