// 转义字符(\ + 特定的普通字符),把这些特定的普通字符转义为具有特殊含义的字符,
// \\字符(\ + \) ,把转义字符 \ 转义为普通的字符 \,正则表达式元字符中若含有\,所以用\\表示是元字符自己的含义,而不是转义字符.
//比如,\d表示数字,在正则表达式中,应写\\d
//如果要表达元字符本身的字符含义,则在元字符前面加上\\即可;或者在正则表达式前加取消转义符号@,然后元字符前只需要加1个\即可实现元字符本身的字符含义
//比如在正则表达式中"."代表匹配非终止符的元字符,前面加一个\\,表示.本身,如下示例检查IP地址格式:
string pat = "^([0-9]{1,3}\\.){3}[0-9]{1,3}$";
bl = Regex.IsMatch("192.168.1.3", pat);
或者正则表达式前加@,取消正则表达式中的转义字符作用,这样在元字符前只需要加一个\就可以表示其字符本来含义了,如下例子:
pat = @"^(\d{1,3}\.){3}\d{1,3}$"; //加了@,转义就不起作用了,\表示其本意
bl = Regex.IsMatch("1.1.2.3", pat);
//1.正则表达式由普通字符和特殊字符(又称元字符)组成的文字模式,正则表达式是一个模板
// 常用元符号示例:^ . \ *+ ? { 、} ( 、 ) [ 、 ] | $...
//
// 这些元符号都有其特殊含义,如果要表示其本来字符的含义,需要在元符号前加上"\\"来表示
// 如,“^\\+?[1-9] [0-9]*$”,匹配正号或没有正号开头,含有0个或n个数字的字符串:
// +是元字符,\\+表示正号本身,所以要表示+本来的意思,前面必须加\\; ?匹配正号0次或1次,*匹配0-9数字0次或n次