求一个验证输入的文本是否符合科学计数法表达式的正则表达式..
比如
这是科学计数法: 2.2602E-7
要判断这个表达式是否符合科学计数法的正则表达式
要满足下面的都可以
2.2602E-7
22602E-7
22602E7
22602
-22602等了,马上结贴..

解决方案 »

  1.   

    [\+\-]?[\d]+([\.][\d]*)?([Ee][+-]?[\d]+)?
      

  2.   

    try
    if(Regex.IsMatch(yourStr,@"[+-]?(?!0\d)\d+(\.\d+)?(E-?\d+)?"))
    {
    }
      

  3.   

    ^([-])?(?!0\d)\d+(\.\d{1,})?(E([-])?\d+)?$
      

  4.   

    是针对例子的。如果你完全匹配,限制开始和结束。你也没说清你是在一堆的字符中找符合要求的,还是只有某一项,如果一次判断yourStr只有一个数,那需要加^和$
    if(Regex.IsMatch(yourStr,@"^[+-]?(?!0\d)\d+(\.\d+)?(E-?\d+)?$"))
    {
    }
      

  5.   

    修正一下:考虑情况类似-2.2602E09,-2.2602E0.9^([-])?(?!0\d)\d+(\.\d{1,})?(E([-])?[1-9](\d+)?)?$//不要-2.2602E09,-2.2602E0.9^([-])?(?!0\d)\d+(\.\d{1,})?(E([-])?(?!0\d)\d+(\.\d{1,}))?$不要-2.2602E09要-2.2602E0.9