A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

江鹏

中级黑马

  • 黑马币:0

  • 帖子:9

  • 精华:0

本帖最后由 江鹏 于 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是一样的。
求解释为啥 难道我正则表达式用法不正确么

评分

参与人数 1技术分 +1 收起 理由
苏波 + 1

查看全部评分

4 个回复

倒序浏览
本帖最后由 曾大鹏 于 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:16

评分

参与人数 1技术分 +1 收起 理由
苏波 + 1

查看全部评分

回复 使用道具 举报
曾大鹏 发表于 2013-5-25 18:11
你正则写错了
应该这样写

改了 你看一下
回复 使用道具 举报
曾大鹏 发表于 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();
复制代码
回复 使用道具 举报
嗯 多谢上面2位的解答了。。。 搞懂了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马