要求如下:
能检验出输入的TXT文本中的数字(出现在任何位置)。
符合的如:1,12,21.1, +16,-2.0等。
不符合的如:aaa11, 11aaa, aaa11aaa, !@a23, a*&2, ++1,--1等。

解决方案 »

  1.   

    不用过分依赖政则啊,客户端用parseFloat,服务器段用float.tryParse不都搞定了?
      

  2.   

    Regex.IsMatch("[1-9][0-9]*.[0-9]*") //大于1的数
    int i;
    try
    {
       Double.Parse(i);
    //Convert.ToDouble(i);
       //OK
    }
    catch
    {
      //bad
    }
      

  3.   

    楼主还需要明确一点,那就是我该如何分辩11和11aaa这样的字符串,也就是按你所说符合要求的,那些数字都应该是分隔开的,是用“,”分隔的吗,或者你给个txt文件内容的例子吧,再指出哪些符合,哪些不符合,最好把你需要考虑的情况都指出来,就你现在所给条件,无法给出正确结果如下正则还有a*&2无法排除,需要你来明确以上内容
    (?<!(\w|+|-))[\+-]?\d+(\.\d+)?(?!\w)
      

  4.   

    这么说吧,比如我要把文本中的符合要求的数字找出来着色.文本中的一行内容: 11a 11 a11
    那么11应被着色,11a和a11都不着色.
    我最开始想到的是 \\s+\d+\\s+ (不考虑浮点数,符号等)
    但对于出现在串头和尾的数字无用
      

  5.   

    也就是以空格他隔的?知道是什么分隔的就好办了,这样(?<=^|\s)\d+(?=\s|$)
      

  6.   

    好像还是正负号和小数是吧,这样(?<=^|\s)[\+-]?\d+(\.\d+)?(?=\s|$)如果还要考虑不能出现012这样的情况,中间部分还要改下