zoukankan      html  css  js  c++  java
  • C#正则表达式简单案例解析

    正则表达式主要用于字符串的操作。

    1.Regex.IsMatch:判断指定的字符串是否符合正则表达式。

    2.Regex.Match:提取匹配的字符串,只能提取到第一个符合的字符串。这里还可以使用组来提取。

    通过括号为正则表达式分组,这样在提取时就能获取到组的信息。返回的类型是Match,通过Value拿到值。

    组信息是通过索引区分的,其中0表示整个匹配的字符,1表示第一个括号内的字符。

    string sss = Regex.Match("", "a(.)d").Groups[1].Value;
    

    3.Regex.Matches,提取全部符合的字符。返回值是MatchCollection。操作和Match一致。

    4.正则表达式的书写和业务的分析有关,需要具体分析规律。

    5.|的优先级很低。

    "a|bcd",将匹配到a或bcd。
    

      

                //.NET 默认使用的是Unicode匹配模式 ,可以通过RegexOption枚举加于限制
    //Unicode编码表示“全角”输入
    //去除重复的数据 这里的1表示自引用,代表引用(.),$1表示反引用,也是代表(.),只不过是在不同的地方引用需要使用不同的表达方式
    //这里会把全部的a替换为单个的a,bc同理。
    //(.)匹配除回车换行以为的所有字符,1则自引用(.),+表示出现一次或多次,这样不管这个字符出现多次,都将被替换成(.),完成了业务的需求 string s = "aaaabbbbccc"; textBox1.AppendText(Regex.Replace(s, @"(.)1+", "$1"));
    //邮箱的规律是包含@和. string email = "sdfsd@qq.com"; //需要将.点转义
    //通过w匹配所有的字符,接上@,接上w,接上.,接上w textBox1.AppendText(Regex.IsMatch(email, @"w+@w+.[a-zA-Z]+").ToString());

    string msg = ""; //限定符后加?表示终止贪婪模式,尽可能的少匹配 //默认情况下是贪婪模式,尽可能多的匹配 Match m1 = Regex.Match(msg, "(.)+?"); //判断是否是合法的邮编 邮政编码为5位数字,这里需要使用^$使完全匹配 //^表示开始 $表示结尾 一起用表示要完全匹配 Regex.IsMatch("", "^[0-9]{6}$"); //判断是否为身份证号码 身份证号码可以为15位或者18位 Regex.IsMatch("", @"[d]{15}|[d]{17}[0-9xX]");

      

  • 相关阅读:
    Java实现 LeetCode 400 第N个数字
    Java实现 LeetCode 400 第N个数字
    Java实现 LeetCode 399 除法求值
    Java实现 LeetCode 399 除法求值
    Java实现 LeetCode 399 除法求值
    Java实现 LeetCode 398 随机数索引
    Java实现 LeetCode 398 随机数索引
    Java实现 LeetCode 398 随机数索引
    linux中的cd ..和cd -命令有什么区别?
    GCC使用
  • 原文地址:https://www.cnblogs.com/xiaoai123/p/6942551.html
Copyright © 2011-2022 走看看