CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  .NET技术 >  C#

一个正则表达式的问题.替换搜索到的子匹配的字符串.

楼主seaofsoul(海魂)2006-06-03 22:37:41 在 .NET技术 / C# 提问

例如:  
  abcdEEaaaaaEEfghiEEbbbbbEEjklEEcccccEEmnopq  
  如果正则表达式为:/EE(.*)EE/不就可以匹配到如下几项  
  EEaaaaaEE  
  EEbbbbbEE  
  EEcccccEE  
  假如我要把源字符串替换为:  
  abcdEExxxxxEEfghiEEyyyyyEEjklEEzzzzzEEmnopq  
  即:aaaaa->xxxxx,bbbbb->yyyyy,ccccc->zzzzz  
  能用正则表达式实现吗?如果可以,怎么实现? 问题点数:20、回复次数:5Top

1 楼wcmj(望尘莫及)回复于 2006-06-04 13:50:14 得分 0

不是一样吗?Top

2 楼Knight94(愚翁)回复于 2006-06-04 13:53:58 得分 0

那你还不如用String.Replace呢Top

3 楼seaofsoul(海魂)回复于 2006-06-06 17:31:27 得分 0

to:Knight94(愚翁)  
  假如我的源串是这个:  
  aaaaabcdEEaaaaaEEfghiEEbbbbbEEjbbbbbklEEcccccEEmncccccopq  
  呢?你说能用Replace方法吗??  
  Top

4 楼chjlcn(http://www.chenjiliang.com)回复于 2006-06-06 18:34:33 得分 0

加多一个问号  
  EE(.*?)EETop

5 楼lxwstar(狂搏无悔)回复于 2006-06-13 17:22:12 得分 0

与EE(.*)EE匹配后将得到:EEaaaaaEEfghiEEbbbbbEEjklEEcccccEE,而不是你想得到的结果。  
  应该改为:EE(?<IWant>[\\w][^E]+)EE  
  代码如下:  
                                      string   str   =   "abcdEEaaaaaEEfghiEEbbbbbEEjklEEcccccEEmnopq";  
  string   strPattern   =   "EE(?<IWant>[\\w][^E]+)EE";  
  Regex   r   =   new   Regex(strPattern4,RegexOptions.Compiled);  
  MatchCollection   mc   =   r.Matches(str);  
  str   =   str.Replace(mc[0].Result("${IWant}"),"xxxxx");  
  str   =   str.Replace(mc[1].Result("${IWant}"),"yyyyy");  
  str   =   str.Replace(mc[2].Result("${IWant}"),"zzzzz");  
  Console.WriteLine(str);  
  输出结果为:  
  -------------------------------  
  abcdEExxxxxEEfghiEEyyyyyEEjklEEzzzzzEEmnopqTop

相关问题

关键词

得分解答快速导航

  • 帖主:seaofsoul

相关链接

  • CSDN .NET频道
  • .NET类图书
  • C#类图书
  • .NET类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo