一个正则表达式匹配结果可以分成多个部分,这就是组(group).
把一次match结果用(?<name>)的方式分成组,例子:
public static void main()
{
string s = "2005-2-21";
regex reg = new regex(@"(?<y>/d{4})-(?<m>/d{1,2})-(?<d>/d{1,2})",regexoptions.compiled);
match match = reg.match(s);
int year = int.parse(match.groups["y"].value);
int month = int.parse(match.groups["m"].value);
int day = int .parse(match.groups["d"].value);
datetime time = new datetime(year,month,day);
console.writeline(time);
console.readline();
}
也可以根据正则里面()的顺序,使用编码访问组.第一个括号对包涵的组被自动编号为1,后面的括号依次编号为2、3……
访问方式:match.groups[1].value
另外也可以用(?<数字>)的方式手工给每个括号对的组编号
苦闷的是如果过一段时间不使用正则的话,里面的符号很容易就忘记了,:-)
新闻热点
疑难解答
图片精选