我想在outlook信件中,查找是否包含某种格式的字符串,比如####-#######-#######,#代表0~9的数字,应该怎么做呢?如果有好的想法,请尽量说的详细些:)谢谢各位。

解决方案 »

  1.   

    这应该属于模式匹配. 可以用KMP算法
      

  2.   

    // ####-#######-#######
    string input = @"aaa3541-3415332-2133346xxx";
    Regex reg = new Regex(@"[0-9]{4}-[0-9]{7}-[0-9]{7}");
    Match match = reg.Match(input);
    Console.WriteLine(match.Value);
      

  3.   

    非常简单的一个想法,就是没跟正则PK过效率string str = "abcdefgqazwedcdaggafhdfghzabhgdkljgablfksjijyunbvl";
    string strReplace = "ab";    //这个就按照你的需求定义啦
    string newStr = str.replace(strReplace , "");
    int showCount = (int)((str.length - newStr.length) / strReplace.length);showCount就是出现过的次数
      

  4.   


                string str = "outlook信件内容";
                bool isExist = System.Text.RegularExpressions.Regex.IsMatch(str, @"\d{4}-\d{7}-\d{7}");
      

  5.   

    回复 mjp1234airen4385 和 libolei
    谢谢你们的建议,但是有个问题你们没有想到,就是子串不是固定的内容,而是固定的格式。所以我觉得replace和substring不合适回复Abbey,ojlovecd
    你们的建议我这就去试验,不过我觉得你们的方法可行:)而我的需求也正是你们给出的例子那样。
      

  6.   

    哦,回复ybhcolin
    谢谢你的建议,我去了解下KMP算法。