using System.Text.RegularExpressions //引用正则表达式的命名空间
class wj
{
private bool RegexIsMatch(string b)
{
string input = b;
string pattern = "^-?[0-9]*$";
return Regex.IsMatch(input,pattern); //返回正则表达式判断后的bool值(静态)
}
private bool IsMatch()
{
string input = "^-?[0-9]*$";
string pattern = @"\d+";
Regex regex = new Regex(pattern);
return regex.IsMatch(input); //返回正则表达式判断后的bool值(实例)
}
}
static void Main(string[] args)
{
string a=ConSole.ReadLine();
wj w=new wj();
if(w.RegexIsMatch(a))
{
ConSole.WriteLine("您输入的是数值");
}
else
{
ConSole.WriteLine("您输入的不是数值");
}
}
元字符(只能匹配一个位置或集合中的一个字符)
^ 匹配行的开始位置
$ 匹配行的结束位置
\b 匹配行的开始或结束位置
。 匹配除换行符外的任意字符
\w 匹配单词字符(包括字母,数字,下划线和汉字)
\W 匹配非单词字符
\s 匹配任意的空白字符(空格,制表符,换行符 等等。。)
\S 匹配非空白符
\d 匹配任意数字
\D 匹配任意非数字
字符转义:
\。 表示 。
\* 表示*
\\ 表示\
字符类:
集合:[ ]
[0123456789] 表示匹配任何一个数字(一个)
[0-9] 表示匹配任何一个数字(与上一条一个意思)
[a-z] 表示匹配任何一个小写字母
[A-Z] 表示匹配任何一个大写字母
集合中加入^号[^ ]这表示“反义规则” 我们要的字符不在集合中时使用。表示否定该字符类。例:[^a-z]表示正则表达式匹配非小写字母
限定字符:
{n} 重复n次
{n,} 至少重复n次
{n,m}至少重复n次,至多重复m次
* 至少重复0次与{0,}相等
+ 至少重复1次与{1,}相等
? 重复0次或1次与{0,1}相等
*? 尽可能少地使用重复的第一个匹配
+? 尽可能少地使用重复但至少使用一次
?? 使用零次重复(如有可能)或一次重复
{n}? 等同于{n}
{n,}? 尽可能少地使用重复但至少使用n次
{n,m}? 介于n次和m次之间,尽可能少地使用重复