如有这样的字符串:  "abc[Abc]1234df[c##][999]setme[AFD327A]900wcf" 其中[AFD327A]是随机生成的固定位数的,现在想判断这个字符串中是否存在这样的随机生成串,如果存在就替换成[编码],有没有什么好方法,谢谢!

解决方案 »

  1.   

    有一个办法,将你产生的固定长度的随机字符保存到一个全局变量中,然后用字符串的string.REPLACE(全局字符串变量,newstring)方法来替换。例如:
    在窗体的构造函数中声明一个全局字符变量。private string Str = "";然后在每次产生随机字符串的时候都为这个这个str赋一次值;通过全局变量来把产生随机字符串传递到字符串的replace方法中完全可以满足你的要求。
      

  2.   

    可我不会写正则,而且正则表达式在这里怎么用呢?string的方法中有替换正则的方法吗?
    另外,这些字符串不是我的程序生成的,是别人生成的,我只是要替换内容而已。
      

  3.   

    string patten="\S[AFD327A]\S";
    string text= "abc[Abc]1234df[c##][999]setme[AFD327A]900wcf";
    matchcolection matchs=Regex.matches(text,patten,regexoption.ignore)
    if(matchs.length>=1)
    replace(...)
      

  4.   

    LZ的问题说得不够明确,猜了下:
    假设你的随机生成串是由大写字母加数字组成,而且长度为7。string str = "abc[Abc]1234df[c##][999]setme[AFD327A]900wcf";
    str= Regex.Replace(str, @"\[[A-Z0-9]{7}\]", "[编码]");