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.");
}