正则学习:组的定义及引用方式
生活随笔
收集整理的這篇文章主要介紹了
正则学习:组的定义及引用方式
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一個正則表達式匹配結果可以分成多個部分,這就是組(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
另外也可以用(?<數字>)的方式手工給每個括號對的組編號
苦悶的是如果過一段時間不使用正則的話,里面的符號很容易就忘記了,:-)
把一次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
另外也可以用(?<數字>)的方式手工給每個括號對的組編號
苦悶的是如果過一段時間不使用正則的話,里面的符號很容易就忘記了,:-)
總結
以上是生活随笔為你收集整理的正则学习:组的定义及引用方式的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: BZOJ 2242: [SDOI2011
- 下一篇: win7便签怎么一直在桌面显示