+MY    ERROR:  5
MY和ERROR之间有空格,个数不知道。:号和数字之间也有空格,个数也不知道。如何提取这个数字呢?不会,那个大侠帮忙看看,谢了

解决方案 »

  1.   

    string yourStr = ......;
    MatchCollection mc = Regex.Matches(yourStr, "MY +ERROR: +(?<digit>\\d+)", RegexOptions.IgnoreCase);
    foreach(Match m in mc)
    {
        m.Groups["digit"].Value;//5
    }
      

  2.   

    还有一点疑问同时匹配"ME"和ME的正则表达如何写?也就是冒号是可选项
      

  3.   

    提取信息中的整数:
    \d+ 
    提取信息中的任何数字 :
    (-?\d*)(\.\d+)? 
      

  4.   

    还有一点疑问同时匹配"ME"和ME的正则表达如何写?也就是冒号是可选项
    ===============string regexStr = "(?<par>\\\"?)\\S+\\k<par>";
    使用\k<name>做反向引用。
    如果前面的<par>中匹配了引号,那么在\k<par>中就必须也匹配一个引号。
    如果前面的<par>中没有匹配引号,那么在\k<par>中也不能匹配引号。
    这样可以排除 "me 或者 me"这两种情况