黑马程序员技术交流社区

标题: 关于利用正则表达式来替换字符串里的内容的方法 [打印本页]

作者: 江鹏    时间: 2013-5-25 17:08
标题: 关于利用正则表达式来替换字符串里的内容的方法
本帖最后由 江鹏 于 2013-5-26 12:27 编辑

比如下面这段代码
  1.             string str = "guhhi11/11/1111hioi";
  2.             string str1 = str.Replace("11/11/1111","1111/11/11");
  3.             Console.WriteLine(str1);
  4.             string str2 = str.Replace("\\d{2}/\\d{2}/\\d{4}","1111/11/11");
  5.             Console.WriteLine(str2);
  6.             Console.ReadKey();
复制代码
str1的结果是正确替换掉了。。。
但是如果我用了正则表达式来完成时(也就是str2)却无法替换了 str2的结果和str是一样的。
求解释为啥 难道我正则表达式用法不正确么


作者: 曾大鹏    时间: 2013-5-25 18:11
本帖最后由 曾大鹏 于 2013-5-25 18:27 编辑

你正则写错了
应该这样写
  1. string str = "guhhi11/11/1111hioi";
  2.             str = Regex.Replace(str,@"\d{2}/\d{2}/\d{4}","1111/11/11");
  3.             Console.WriteLine(str);
复制代码

作者: 曾大鹏    时间: 2013-5-25 18:28
曾大鹏 发表于 2013-5-25 18:11
你正则写错了
应该这样写

改了 你看一下
作者: shenge321    时间: 2013-5-25 18:31
曾大鹏 发表于 2013-5-25 18:28
改了 你看一下

我也跟楼主犯了同样的错误,在js里这样写没问题。
但在c#里需要Regex类。楼主的正则没问题。你的正则加@也可以。
  1. Regex rg = new Regex("\\d{2}/\\d{2}/\\d{4}");
  2.             string str2 = rg.Replace(str,"1111/11/11");
  3.             Console.WriteLine(str2);
  4.             Console.ReadKey();
复制代码

作者: 江鹏    时间: 2013-5-26 12:26
嗯 多谢上面2位的解答了。。。 搞懂了




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2