http://www.wangqi.com/html/2006-12/9250.htm 字符语法 语法解释 语法例子 \d 匹配数字(0~9) ‘\d’匹配8,不匹配12; \D 匹配非数字 ‘\D’匹配c,不匹配3; \w 匹配任意单字符 ‘\w\w’ 匹配A3,不匹配@3; \W 匹配非单字符 ‘\W’匹配@,不匹配c; \s 匹配空白字符 ‘\d\s\d’匹配3 d,不匹配abc; \S 匹配非空字符 ‘\S\S\S’匹配A#4,不匹配3 d; . 匹配任意字符 ‘....’匹配A$ 5,不匹配换行; […] 匹配括号中任意字符 [b-d]匹配b、c、d, 不匹配e; [^…] 匹配非括号字符 [^b-z]匹配a,不匹配b-z的字符; 重复语法 语法解释 语法例子 {n} 匹配n次字符 \d{3}匹配\d\d\d,不匹配\d\d或\d\d\d\d {n,} 匹配n次和n次以上 \w{2}匹配\w\w和\w\w\w以上,不匹配\w {n,m} 匹配n次上m次下 \s{1,3}匹配\s,\s\s,\s\s\s,不匹配\s\s\s\s ? 匹配0或1次 5?匹配5或0,不匹配非5和0 + 匹配一次或多次 \S+匹配一个以上\S,不匹配非一个以上\S * 匹配0次以上 \W*匹配0以上\W,不匹配非N*\W 重复语法 语法解释 语法例子 ^ 定位后面模式开始位置 $ 前面模式位于字符串末端 \A 前面模式开始位置 \z 前面模式结束位置 \Z 前面模式结束位置(换行前) \b 匹配一个单词边界 \B 匹配一个非单词边界 举一个例子: 用户输入一个数字或数字区间,如: 60001 60001-60005 说明:没有"-"时为独立数字,中间可以用"-"表示区间,前后必须是数字且小于9位,"-"只允许一个。 ^\d{1,8}(-\d{1,8})?$ Regex test1 = new Regex(@"^\d{1,}(-\d{1,})?$", RegexOptions.None); string temp = Console.ReadLine(); if (test1.IsMatch(temp)) { Console.WriteLine("Valid"); foreach (Match m in test1.Matches(temp)) { Console.WriteLine(m.Value); } } else { Console.WriteLine("Not valid."); }

评论