正则表达式替换字符串

VFanYan 2004-05-07 04:07:37
字符串为:

<abc>

[def]

要求用正则表达式同时将<>替换为:[],将[]替换为:<>,结果应如下:

[abc]

<def>
...全文
62 10 点赞 打赏 收藏 举报
写回复
10 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
hychieftain 2004-05-09
不如直接用字符串操作还简便的多!
  • 打赏
  • 举报
回复
Seeko0 2004-05-09
//先任意符号拆分然后再组合
string s="<abc>[def]";
Regex r=new Regex(@"\<|\>|\[|]",RegexOptions.Multiline);

Match m = r.Match(s);
int matchCount = 0;

string c=string.Empty; //输出
string[] ss=r.Split(s);
int i=0;
while (m.Success)
{
Group g = m.Groups[0];

c+=ss[i];
switch(g.ToString())
{
case "<":c+="[";break;
case ">":c+="]";break;
case "[":c+="<";break;
case "]":c+=">";break;
}

i++;
m = m.NextMatch();
}

return c;
// c="[abc]<def>";
  • 打赏
  • 举报
回复
penniless 2004-05-08
leonferrari(见贴就up) 的方法应该是最容易实现的
  • 打赏
  • 举报
回复
possible_Y 2004-05-07
用GroupCollection试试
  • 打赏
  • 举报
回复
leonferrari 2004-05-07
同时不太清楚,不过有个思路:能否先把[]全替换为(),再把<>全替换为[],最后把()全替换为<>,用一个中间环节来过渡一下.
  • 打赏
  • 举报
回复
vzxq 2004-05-07
帮你UP
  • 打赏
  • 举报
回复
huangsuipeng 2004-05-07
先UP吧。。。
  • 打赏
  • 举报
回复
VFanYan 2004-05-07
如果不同时的话,就没法得到正确的结果呀.
  • 打赏
  • 举报
回复
songbird 2004-05-07
难就难在同时。
建议用2个MatchCollection存放匹配结果,然后对每一个结果逐一替换。
  • 打赏
  • 举报
回复
VFanYan 2004-05-07
没人会?还是分太少?
  • 打赏
  • 举报
回复
相关推荐
发帖
C#
加入

10.6w+

社区成员

.NET技术 C#
申请成为版主
帖子事件
创建了帖子
2004-05-07 04:07
社区公告

让您成为最强悍的C#开发者