想做个可疑替换多个字符串的工具,就是说一下子可以替换多个字符串,
不过有个问题
比如,aaa要替换成aba
bab要替换成ccc下列字符串
aaabab
用先全部替换一个再替换下一个的方法替换后就成了
aaabab->ababab->acccab
应该是
abaccc的怎么解决阿?

解决方案 »

  1.   

    呵呵,先用罕见字符中间变量作替换,再执行相应操作,应该比较快的,如:
    Private Sub Command1_Click()
    Dim x As String
    x = "aaabab"
    x = Replace(x, "aaa", "@@@")
    x = Replace(x, "bab", "###")
    x = Replace(x, "@@@", "aba")
    x = Replace(x, "###", "ccc")
    MsgBox x
      

  2.   

    “罕见字符”中介法虽然可以用,但不是万能的。分析你的基本需求,就可以看出你的这种需求本身就带有二义性。
    也就是说,不管你怎么替换,程序总是无法确定babab这种字符串该如何替换。对于这种问题,程序应该事先作出判断,也就是说先进行一次“预替换”,如果发现
    存在二义性,则提示用户,让用户指定如何替换。
      

  3.   

    适当更改,比方说,你的字符串不会有 string(50,"@")吧?
    x = Replace(x, "aaa",string(50,"@"))
    x = Replace(x, string(50,"@"), "aba")
      

  4.   

    二义性问题如果没有规则的话,对于机器来说,是不可能解决的。
    例如aa->bb aaa->cc aaaa->bbcc,那么对于aaaaaaaaa你怎么来替换?除非你有一套规则,按照规则将之分解,例如你的规则是对于aaaaaaaaa来说,他表示为aa aaaa aaa,这样就可以替换了。
    其实你的问题已经涉及到编译原理了,多看看这方面的书吧,对你肯定有启发的。
      

  5.   

    先换成看不到的而且一般又用不到的字符比如ASCII为1的chr(1)哈哈!这个总该可以了把?
      

  6.   


    replace(str,'aaa','aba')
    replace(str,'bab','ccc')