• (转)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

  • 相关阅读:
    【P2236】彩票(搜索+剪枝)
    【P1714】切蛋糕(单调队列)
    【P1886】滑动窗口(单调队列→线段树→LCT)
    【P3522】TEM(单调队列+DP)
    【P3957】跳房子(单调队列+DP+二分)
    【P1947】笨笨当粉刷匠(DP+前缀和)
    【P2564】生日礼物(单调队列)
    【[NOI2011]智能车比赛】(建图+spfa+坑爹精度)
    diyiti.cpp
    由最小环问题想到的
  • 原文地址:https://www.cnblogs.com/hongjiumu/p/2645710.html
Copyright © 2020-2023  润新知