正则表达式替换字符串

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

<abc>

[def]

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

[abc]

<def>
...全文
75 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
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
  • 打赏
  • 举报
回复
没人会?还是分太少?

110,535

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

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

试试用AI创作助手写篇文章吧