1。在正则表达式中定义变量并调用:
using System; using System.Text.RegularExpressions; public class Test{ public static void Main () { // Define a regular expression for repeated words. Regex rx = new Regex( @" \b(?<word>\w+)\s+(\k<word>)\b " , RegexOptions.Compiled | RegexOptions.IgnoreCase); // Define a test string. string text = " The the quick brown fox fox jumped over the lazy dog dog. " ; // Find matches. MatchCollection matches = rx.Matches(text); // Report the number of matches found. Console.WriteLine( " {0} matches found. " , matches.Count); // Report on each match. foreach (Match match in matches) { string word = match.Groups[ " word " ].Value; int index = match.Index; Console.WriteLine( " {0} repeated at position {1} " , word, index); } } } 其中?<word>定义了一个变量,之后的\k<word>调用自身定义的变量word。 2。好用的Regex.Replace 和Match.Result 这个例子实现输入的日期更改格式的功能,用正则表达式自动搜索字符串并替换,注意正则表达式中变量的使用。 public string MDYToDMY(string input) { return Regex.Replace(input, " \\b(?<month>\\d{1,2})/(?<day>\\d{1,2})/(?<year>\\d{2,4})\\b " , " ${day}-${month}-${year} " ); } Match.Result是返回一个可以带正则表达式中变量值的字符串。 public string Extension( string url) { Regex r = new Regex( @" ^(?<proto>\w+)://[^/]+?(?<port>:\d+)?/ " , RegexOptions.Compiled); return r.Match(url).Result( " ${proto}${port} " ); }正则式官方详解:
http://msdn.microsoft.com/zh-cn/library/ae5bf541.aspx
转载于:https://www.cnblogs.com/tuyile006/archive/2008/02/19/1073284.html
相关资源:数据结构—成绩单生成器