C#中正则表达式的高级应用

it2022-05-09  30

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

相关资源:数据结构—成绩单生成器

最新回复(0)