Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何使用正则表达式检查字符串是否为科学符号?_Java_Regex_Pattern Matching - Fatal编程技术网

Java 如何使用正则表达式检查字符串是否为科学符号?

Java 如何使用正则表达式检查字符串是否为科学符号?,java,regex,pattern-matching,Java,Regex,Pattern Matching,我想检查用户输入,这是我将得到的字符串,并传递给一个数组!现在我想用正则表达式来看看这个数字是否是科学符号!我也想为八进制做同样的事情!!! 我这里有我的工作,浮点,它的工作完美,但对于科学记数法和八进制不实际工作不知道为什么!! 我也可以使用模式编译!如果是,怎么办 谢谢你的帮助 下面是检查浮点的工作 private static boolean floating(String [] data) { int count =0; boolean correct = false;

我想检查用户输入,这是我将得到的字符串,并传递给一个数组!现在我想用正则表达式来看看这个数字是否是科学符号!我也想为八进制做同样的事情!!! 我这里有我的工作,浮点,它的工作完美,但对于科学记数法和八进制不实际工作不知道为什么!! 我也可以使用模式编译!如果是,怎么办

谢谢你的帮助 下面是检查浮点的工作

private static boolean floating(String [] data) {
    int count =0;
    boolean correct = false;
    for (int i = 0; i < data.length; i++) {

        if (str.matches("((-|\\+)?[0-9]+(\\.[0-9]+)?)+")){
            System.out.println(" it's a floating number ");
            correct= true;
            break;
         }else 
             correct = false;

    }if (correct ==true){
        return true;
    }else 
    return false; 

}
私有静态布尔浮点(字符串[]数据){
整数计数=0;
布尔正确=错误;
对于(int i=0;i
这是我的科学记数法的方法和表达方式

    private void SNotation(String [] data) {
        int count =0;
    boolean correct = false;
    for (int i = 0; i < data.length; i++) {

        if (str.matches('(?<![\d.])(?!\.\.)(?<![\d.][eE][+-])(?<![\d.][eE])(?<!\d[.,])'){ 
/// here is not accepting the expression which i believe is right !! 
            System.out.println(" it's a floating number ");
            correct= true;
            break;
         }else 
             correct = false;

    }if (correct ==true){
        return true;
    }else 
    return false; 

for pattern compile i found these rules but dont know how should i use it ! 
private void SNotation(字符串[]数据){
整数计数=0;
布尔正确=错误;
对于(int i=0;iif(str.matches(')(?您可以对它们全部使用一个正则表达式。每个捕获组匹配一个不同的
类型

“^(?:([+-]?(?:\\d+\\.\\d*.\\\\.\\d+)(\\\\[0-7]+)([+-]?\\d+)([+-]?(?:\\d+(?:\.\\d*)?\.\\d+[eE][+-]?\\d+)$”

格式化

 ^ 
 (?:
      (                             # (1 start), Float
           [+-]? 
           (?:
                \d+ \. \d* 
             |  \. \d+ 
           )
      )                             # (1 end)
   |  
      ( \\ [0-7]+ )                 # (2), Octal
   |  
      (                             # (3 start), Integer
           [+-]? 
           \d+ 
      )                             # (3 end)
   |  
      (                             # (4 start), Scientific Notation
           [+-]? 
           (?:
                \d+ 
                (?: \. \d* )?
             |  \. \d+ 
           )
           [eE] [+-]? \d+ 
      )                             # (4 end)
 )
 $