比如已知一个字符串变量:
“发表问题前,建议搜索已有问题[email protected]发表问题前,建议搜索已有问题12345678”
我想让上面的字符串经过处理后成为:
“发表问题前,建议搜索已有问题***发表问题前,建议搜索已有问题***”
请问是不是只能用正则表达式实现?如何实现?谢谢

解决方案 »

  1.   

    正则表达
    Email:^[\\w-]+(\\.[\\w-]+)*@[\\w-]+(\\.[\\w-]+)+$
    数字:^-?\\d+$
      

  2.   

    Dim objReg As Regex
    strFinally = objReg.Replace(strFinally, "^[\\w-]+(\\.[\\w-]+)*@[\\w-]+(\\.[\\w-]+)
    +$", "Email")
    Return strFinally
    我是这样写的,怎么过滤不掉呢?
      

  3.   

    这个似乎不好区分哦,首先你没法把“已有问题[email protected]发表问”区分出来,一般的表达式只能去判断这样一个email 的格式,但是无法把其前面和后面的文字格开,假如你的字符串是"[email protected]"怎么办?根本分不出来哪一段是要替换的email的
      

  4.   

    [email protected]这个把它当成Email好了,替换成***就可以
      

  5.   

    try
    string s = "发表问题前,建议搜索已有问题[email protected]发表问题前,建议搜索已有问题12345678";
    s = Regex.Replace(s,@"[A-Za-z0-9_-]+(\.[A-Za-z0-9_-]+)*@[A-Za-z0-9_-]+(\.[A-Za-z0-9_-]+)+|\d{7,}","***", RegexOptions.IgnoreCase);
    Console.WriteLine(s);