一个字符串中含有版本号如1.1.3,我要匹配它,他前面不能为数字或者数字加. ,后面不能为数字或者.加数字.即不能为11.1.3,
11.1.3,1.1.33,1.1.3.3等,但可以为1.1.3.i

解决方案 »

  1.   

    @"[^\d\.]+" + strReqNumber + @"[^\d\.]+" 其中strReqNumber是版本号1.1.3,但是这个匹配把1.1.3.i给排除了,11.1.3,1.1.31,1.1.1.3,1.1.3.1这些排除了是正常的.但是我再改动,怎么也匹配不上
    1.1.3.i请你帮忙改动一下,谢谢了.
      

  2.   

    "\\D(\\d\\.){2}(\\d[^.\\d]|\\d\\.\\D)"
      

  3.   

    你能不能不要去用表达式去匹配1.1.3这个字符串啊,这个就是一个整体strRegNumber.我需要的是前面和后面的匹配表达式
      

  4.   


                string[] str = { "11.1.3", "1.1.31", "1.1.1.3", "1.1.3.1", "1.1.3", "1.1.3.i", "1.1.3.啊" };
                Regex reg = new Regex(@"(?i)(?<![\d.])1.1.3(?:(?=\.[a-z])|(?![\d.]))");
                foreach (string s in str)
                    Console.WriteLine(reg.IsMatch(s));