问个正则表达式 替换问题,请高手帮助!

114 2010-09-20 07:39:10

abc ,def<sup id=1 >1,*,#</sup>, xef<sup id=2 >1</sup>, ejf<sup id=3 >x,2,a</sup> ,sdf<sup>1,2,a</sup>, eidf<sup>a</sup>

想用正则表达式把上面字符串中 <sup><sup/> 中间的逗号 替换成</sup>,<sup> 其余逗号不做替换。
结果如下:

abc ,def<sup>1</sup>,<sup>*,#</sup>, xef<sup id=2 >1</sup>, ejf<sup id=3 >x</sup>,<sup>2</sup>,<sup>a</sup> ,sdf<sup>1</sup>,<sup>2</sup>,<sup>a</sup>, eidf<sup>a</sup>

...全文
73 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
兔子-顾问 2010-09-20
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 114 的回复:]
<sup id=1 > 这种情况的 没有被替换,不过已经很不错了。
[/Quote]
因为你最初说是<sup>所以按你规则写的,但后面仔细看,你的字符串中有
<sup id=3 >x,2,a</sup>
就有了3楼的回复。

<sup id=1 >1,*,#</sup>

这个用3楼给你的方法应该是被替换掉了吧,你试试。
114 2010-09-20
  • 打赏
  • 举报
回复
完成我的需求,现在就结贴!谢谢wuyazhe专家!
114 2010-09-20
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 caozhy 的回复:]
引用 2 楼 114 的回复:
哦,这么快,我测试一下 没有问题 就结贴!

wuyazhe是正则方面的专家 ^_^
[/Quote]


同意!!
114 2010-09-20
  • 打赏
  • 举报
回复
<sup id=1 > 这种情况的 没有被替换,不过已经很不错了。
threenewbee 2010-09-20
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 114 的回复:]
哦,这么快,我测试一下 没有问题 就结贴!
[/Quote]
wuyazhe是正则方面的专家 ^_^
兔子-顾问 2010-09-20
  • 打赏
  • 举报
回复
如果你描述的不准确,还包含<sup....>的情况。这样。

string s = "abc ,def<sup id=1 >1,*,#</sup>, xef<sup id=2 >1</sup>, ejf<sup id=3 >x,2,a</sup> ,sdf<sup>1,2,a</sup>, eidf<sup>a</sup>";
string result = Regex.Replace(s, @"(?<=<sup[^>]*>((?!</?sup).)+?),(?=.+</sup>)", "</sup>,<sup>");
114 2010-09-20
  • 打赏
  • 举报
回复
哦,这么快,我测试一下 没有问题 就结贴!
兔子-顾问 2010-09-20
  • 打赏
  • 举报
回复
string s = "abc ,def<sup id=1 >1,*,#</sup>, xef<sup id=2 >1</sup>, ejf<sup  id=3 >x,2,a</sup> ,sdf<sup>1,2,a</sup>, eidf<sup>a</sup>";
string result = Regex.Replace(s,@"(?<=<sup>((?!</?sup).)+?),(?=.+</sup>)","</sup>,<sup>");

111,129

社区成员

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

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

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