• (33)C#正则表达式


     正则表达式:专门用于字符串处理的语言,用来描述字符串特征的表达式

    元字符

     .

    之间可以出现任意单个字符(除了 换行)

    例如: a.b   意思是这个表达式必须是三个字符,第一个字符是a,第三个字符是b,中间是任意一个字符(中间字符也可以是空格)

    []

    字符的筛选

    例如: a[fgh]b 意思是这个表达式必须是三个字符,第一个字符是a,第三个字符是b,中间字符必须是f g h 中的一个字符

    例如  a[0-9]b     第二个字符可以是 0到9之间的任意一个字符

    例如 a[0-9a-zA-Z]b   第二个字符可以是 0到9或者a到z或者A-Z之间的任意一个字符

    例如 a[^0-9a-z]b       第二个字符可以是除了0-9 a-z 以外的任意一个字符

    |

    表示或的意思

     例如: z|food   意思是 这个表达式是z 或者 food (| 优先级最低)

     例如:(z|f)ood 意思是 这个表达式是zood 或者 food

    () 

    改变优先级,提取组

    *

    限定符,表示 * 前一个字符可以出现次或者

    例如: af*b   表示 f 可以不出现(ab)或者出现多次(afffffffb)

    例如: a.*b   表示 ab间可以出现任何数字(asdgdffsgb)

    限定符,表示 *号前一个字符至少出现一次

    例如: a.+b    表示ab之间至少要出现一个字符(adfgsdfhsdfhb)

    例如:a[0-9]b   表示 ab间至少有一个0-9的数字并且这个数字可以出现任意次(a0000b)

    ?

    限定符,表示?前一个字符必须出现零次或者一次

    例如: a.?b   这个字符串必须是ab 或者 a.b

    ?

    另一个作用:终止贪婪模式。 正则表达式默认是贪婪模式

    {}    

    两种

    1、{n}  之前的一个字符必须出现n次 

    例如  a[0-9]{5}b   ab间的存在5个相同字符并且这5个字符必须是0到9之前的一个数 (a88888b)

    2、{n,m} 之前的一个字符最少出现n次,最多出现m次

    例如  a[0-9]{5,7}b         lue

    3、{n,} 表示之前的一个字符至少出现n次,没有上限

    ^

    必须是 xxx开头

    例如 ^ab  表达式必须是ab开头 (ab454gag)

    $

    必须是 xxx结束

    例如 xyz$ 表达式末尾必须是xyz(dhdfshxyz)

    简写表达式

    d 等价于[0-9]    英文单词 digital(数字)

    D等价于[^0-9]

    s  表示所有不可见空白符 (包括中英文空格、回车、tab等)

    例如: as*b  表示ab之间可以有任意空白或者只是ab两个字符

    S(大写) 表示除了s(小写) 以外的所有字符

    w 匹配字母或数字或下划线或汉字 。   除了%&#@!$

    W

     单机的边界

     @

    如果一个字符串里出现带的正则(如:d)就需要在字符串前加个@,目的是让告诉.net编译器这个字符串里的不是转义用的。

    Regex 类

    表示不可变的正则表达式。

    using System.Text.RegularExpressions;

    构造函数

    Regex()    初始化 Regex 类的新实例

    Regex(String)  新实例初始化 Regex 为指定的正则表达式类(传一个正则表达式进来)

    还有三个暂时不用

    方法 

     Regex.Match(string) 传一个字符串进去  (返回一个Match对象)

     Regex.Match(string,string)第一个穿需要判断的字符串,第二个传正则表达式(返回一个Match对象)

     Regex.IsMatch(string,string) 返回一个布尔值用来判断是否匹配成功

                string p = "a.b";
                string str="addb";
                if (Regex.IsMatch(str, p))
                {
                    Console.WriteLine("匹配成功");
                   
                }
                else
                {
                    Console.WriteLine("匹配不成功");
                }
                Console.ReadKey();
            }

     

    Match 类

    表示单个正则表达式匹配的结果

     using System.Text.RegularExpressions;

    属性

    Length 获得字符串长度

                string p = "a.b";
                string str="adb";
                Match match = Regex.Match(str, p);
                int a = match.Length;
                Console.WriteLine(a);

    Success  判断是否匹配成功 

     string p = "a.b";
                string str="addb";
                Match match = Regex.Match(str, p);
                if (match.Success)
                {
                    Console.WriteLine("匹配成功");
                   
                }
                else
                {
                    Console.WriteLine("匹配不成功");
                }
                Console.ReadKey();

    Value  获得字符串的值

                string p = "a.b";
                string str="adb";
                Match match = Regex.Match(str, p);
                string a = match.Value;
                Console.WriteLine(a);

  • 相关阅读:
    Delphi 拖动
    Unknown picture file extension
    鼠标指针形状
    C_FD_PhysRDBMSKinds
    delphichromiumembedded
    delphi使用 DockForm DesignEditors F2613 Unit 'DockForm' not found
    TBitConverter
    sql 存储过程返回值 变量名
    XE7 数据库独立运行需要的文件
    C++Builder 内存泄露检测
  • 原文地址:https://www.cnblogs.com/buchizaodian/p/6607426.html
Copyright © 2020-2023  润新知