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

本文详细介绍了如何利用正则表达式进行日期格式转换和文本匹配,包括日期格式从MDY到DMY的转换,以及如何在文本中查找重复单词和特定模式。通过实例代码演示了如何定义变量、使用`Regex.Replace`和`Match.Result`方法,以及正则表达式的选项使用,如忽略大小写和编译选项。

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/houzhitong/archive/2012/03/15/2398735.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值