用正则表达式替换不规则的回车换行。(C#)

有一个字符串

string StringInsert="Hi:/r/nThis is James!/nNice to meet you!/n/nThanks."

我想把所有'/n'替换成‘/r/n’,但是如果/n前面已经有了/r的话,就不必重复替换了。

也就成最终我想要的字符串应该是:
"Hi:/r/nThis is James!/r/nNice to meet you!/r/n/r/nThanks."

我用了一下代码,好像不对!
string rstr = "[/r]{0}[/n]{1}";
Regex r = new Regex(rstr, RegexOptions.IgnoreCase | RegexOptions.Compiled);
if (r.IsMatch(StringInsert))
     StringInsert=r.Replace(StringInsert,"/r/n");


请问,正确的匹配条件应该如何写?
谢谢!

答案:

string StringInsert = "Hi:/r/nThis is James!/nNice to meet you!/n/nThanks.";

            string rstr = "(?<!//r)//n";
            Regex r = new Regex(rstr, RegexOptions.IgnoreCase | RegexOptions.Compiled);
            if (r.IsMatch(StringInsert))
            {
                StringInsert = r.Replace(StringInsert, "/r/n");
            } 

 

另外,不用正则表达式的做法如下:

string yourStr = "Hi:/r/nThis is James!/nNice to meet you!/n/nThanks.";
yourStr.Replace("/r/n","/n");
yourStr.Replace("/n","/r/n");

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值