变量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"。这时就难了!

解决方案 »

  1.   

    string s = A.Replace("<a>b</a>", "b");
    s = A.Replace("b", "<a>b</a>");很难吗?
      

  2.   

    string s = A.Replace("<a>b</a>", "b");
    s = s.Replace("b", "<a>b</a>");
      

  3.   

    哦忘记说个前提:
    假如A="a<a>bc</a>cdeb".
    按照Avoid(千金散尽还复来) ( ) 的用法
    得出的结果是:"a<a><a>b</a>c</a>cde<a>b</a>".
    只有b没有在"<a></a>"圈住的情况下,才可以替换进去.!
      

  4.   

    能得到vmm的夸奖不是三生有幸?
      

  5.   

    我还有个要求没达到呀.兄台们再看看!
    -----------
    哦忘记说个前提:
    假如A="a<a>bc</a>cdeb".
    按照Avoid(千金散尽还复来) ( ) 的用法
    得出的结果是:"a<a><a>b</a>c</a>cde<a>b</a>".
    只有b没有在"<a></a>"圈住的情况下,才可以替换进去.!
      

  6.   

    我是感觉很难,所以来寻求高手解答.
    Avoid(千金散尽还复来) ( ) 
    可否麻烦你帮我搞定.!
      

  7.   

    string []szStr = A.Split('<');
    然后对数组隔1个进行Replace。
      

  8.   

    trystring 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>");
    }
    因为不太清楚你的具体规则,所以这里的正则写的繁琐了,其实可以简化的
      

  9.   

    lxcnn(过客)
    正则高手啊。我看得眼花
      

  10.   

    楼主可以这样完成
    ====================
    string str ="";
    string[] s = A.Split('b');
    for(int i=0;i<s.Length-1; i++)
    {
    int l1 = s[i].LastIndexOf("<a>");
    int l2 = s[i].LastIndexOf("</a>");
    if(l1<=l2)
    str = str + s[i] + "<a>b</a>";
    else
    str = str + s[i] + "b";
    }Label1.Text = str;
    ================
    大概的意思先把A根据b分割了 
    然后判断每个分隔字符串<a></a>谁在后面 
    如果<a>在后面说明b在<a></a>之中
    如果</a> 在后面说明可以加<a></a>
      

  11.   

    A中的b替换成别的特殊的字符...然后再用你的<a>b</a>把特殊的字符替换回来.
      

  12.   

    w59879213(草根王某) ( ) 信誉:100  2007-08-10 11:31:06  得分: 0  
     
     
       A中的b替换成别的特殊的字符...然后再用你的<a>b</a>把特殊的字符替换回来.
      
    ---------------------------------------------------------------】
    这个办法我支持
      

  13.   

    扫描字符串,找到b后,判断,与b相邻的是否有<a>和</b>,有的话继续扫描后边的字符,寻找b,没有的话替换就可以了。
      

  14.   

    打错了,是判断<a>和</a>,不是</b>