C# 正则表达式

谈到C#正则表达式,标题还是有点偏了,正则表达式是所有语言都支持,不仅仅是C#,但是正则表达式的定义确实变化多样,不能表达式实现不同效果:

正则表达式的基础知识:

/******************************************常用元字符********************************************************/

代码说明
. 匹配除换行符以外的任意字符
w 匹配字母或数字或下划线或汉字
s 匹配任意的空白符
d 匹配数字
 匹配单词的开始或结束
^ 匹配字符串的开始
$ 匹配字符串的结束

 

 

 

 

 

 

 

 

/*******************************************常用限制符******************************************************/

代码/语法说明
* 重复零次或更多次
+ 重复一次或更多次
? 重复零次或一次
{n} 重复n次
{n,} 重复n次或更多次
{n,m} 重复n到m次

/*******************************************常用反义词*******************************************************/

代码/语法说明
W 匹配任意不是字母,数字,下划线,汉字的字符
S 匹配任意不是空白符的字符
D 匹配任意非数字的字符
B 匹配不是单词开头或结束的位置
[^x] 匹配除了x以外的任意字符
[^aeiou] 匹配除了aeiou这几个字母以外的任意字符

 

 

 

 

 

 

 

 

 /******************************************实用码参考********************************************************/

正则表达式常用的功能点:

1、匹配元素抓取想要的结果,一般用于数据采集和网页分析;

2、数据验证;

简单举例说明正则表达式用处:

代码实现功能说明:
验证用户输入数据格式是:23:15-23:00或者23:15-23:00;23:15-23:00;23:15-23:00 这样的数据格式

代码如下:(正则表达式是重点)

 static void Main(string[] args)
        {
            MatchCollection martcollcect = new Regex(@"(^d{2}:d{2}-d{2}:d{2};$)").Matches("23:15-25:16;23:15-25:16;23:15-25:16");
            bool resultBook = RegexCheckTime("23:15-25:16;23:15-25:16;23:15-25:16");
            resultBook = RegexCheckTime("23:15-23:16;as:15-23:16;23:15-23:16");
            resultBook = RegexCheckTime("23:15-23:16;23:15-23:16;23:15-22:16");
            resultBook = RegexCheckTime("23:15-23:16");
          
        }

        /// <summary>
        /// 验证时间格式是:23:15-25:16;03:15-25:16模式
        /// </summary>
        /// <param name="inputcontext"></param>
        /// <returns></returns>
        public static bool RegexCheckTime(string inputcontext)
        {
            string regparm = @"^(([0-1]d|2[0-3]):([0-5]d)-([0-1]d|2[0-3]):([0-5]d);)*([0-1]d|2[0-3]):([0-5]d)-([0-1]d|2[0-3]):([0-5]d)$";
            Regex rg = new Regex(regparm);
            return rg.IsMatch(inputcontext);
        }

正则参考语法:
  http://www.cnblogs.com/youring2/archive/2009/11/07/1597786.html

 

原文地址:https://www.cnblogs.com/xibei666/p/4611321.html