【急救】关于字符串碰到的棘手问题.寻求高手解答..
变量A= "abcdeb ";
现在必须把变量A里的 "b "替换成 " <a> b </a> ";
替换后是这样 "a <a> b </a> cde <a> b </a> "
可是假如A的值= "a <a> b </a> cdeb ",这时那个已经替换掉的b不能动了,只能替换另外一个b.
----
也就是说:当A= "abcdeb ";这时替换容易 可是当A= "a <a> b </a> cdeb "。这时就难了!
------解决方案--------------------string s = A.Replace( " <a> b </a> ", "b ");
s = A.Replace( "b ", " <a> b </a> ");
很难吗?
------解决方案--------------------Avoid是个聪明孩子~
------解决方案--------------------try
string result = Regex.Replace(yourStr, @ "^[\s\S]*?(?= <a[^> ]*> |$)| </a> [\s\S]*?(?= <a[^> ]*> )| </a> [\s\S]*$ ", new MatchEvaluator(regReplace), RegexOptions.IgnoreCase);
private string regReplace(Match m)
{
return m.Value.Replace( "b ", " <a> b </a> ");
}
因为不太清楚你的具体规则,所以这里的正则写的繁琐了,其实可以简化的
------解决方案--------------------我是来学习滴 ...
------解决方案--------------------扫描字符串,找到b后,判断,与b相邻的是否有 <a> 和 </b> ,有的话继续扫描后边的字符,寻找b,没有的话替换就可以了。