c#正则的一个妙用

假如,我们有这样一段文字

<color  :  red>愿:</color><color:green>我们的祖国越来越强大</color>

要替换成

<color  =  red>愿:</color><color=green>我们的祖国越来越强大</color>

当然,如果就事论事的话,要替换这个字符串的办法非常多.但是如果这仅仅是一个非常非常长的字符串,且里面有N多个个<color:xx>标记呢?这个时候自然而然的就想到了用正则,也很容易的就找到了正确的正则<color[ ]*:[ ]*[a-zA-Z]+[>](当然也有很多多种方式,正则的世界也是条条大陆通巴黎的)至于如何替换的思路也是非常清晰.但是如何用代码非常简单的就完成这个功能却是很让人有点摸不着头脑了.

其实Regex类的方法很多,我们要实现这个功能,需要用到的是Replace()方法的一个重载版本

Replace(string input, string pattern, string replacement);

其实最主要的是如何构造最后的那个replacement.

我们可以用匿名方法来实现想要的功能,其实这段代码真的非常简单

<code=C#>

string str = "<color : red>愿:</color><color:green>我们的祖国越来越强大</color>";
string regexPattern = "<color[ ]*:[ ]*[a-zA-Z]+[>]";
str = Regex.Replace(str, regexPattern, delegate(Match m) { return Regex.Match(m.Value, regexPattern).Value.Replace(":", "="); });

</code>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值