Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.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中的Regex lookbehind_Java_Regex - Fatal编程技术网

Java中的Regex lookbehind

Java中的Regex lookbehind,java,regex,Java,Regex,我对java中的lookbehind有一个问题。 下面的方法 public static void main (String[] args) throws java.lang.Exception { String num = "1E-12x10"; String[] numArr = num.split("(?<!E)\\-"); System.out.println(numArr[0]); } public static void main (

我对java中的lookbehind有一个问题。 下面的方法

    public static void main (String[] args) throws java.lang.Exception
{
    String num = "1E-12x10";
    String[] numArr = num.split("(?<!E)\\-");
    System.out.println(numArr[0]);

}
    public static void main (String[] args) throws java.lang.Exception
{
    String num = "1E-12x10";
    String[] numArr = num.split("[x\\-]");
    System.out.println(numArr[0] + " " + numArr[1] + " " + numArr[2]);

}
还生成预期输出1E 12 10,在“x”和“-”上进行拆分

但是当我尝试下面的方法时

    public static void main (String[] args) throws java.lang.Exception
{
    String num = "1E-12x10";
    String[] numArr = num.split("[x(?<!E)\\-]");
    System.out.println(numArr[0] + " " + numArr[1] + " " + numArr[2]);

}
publicstaticvoidmain(字符串[]args)抛出java.lang.Exception
{
字符串num=“1E-12x10”;

String[]numArr=num.split(“[x(?您不能将lookbehind放置在字符类中。您需要使用一种替代方法,如下所示:

String[] numArr = num.split("x|(?<!E)-");

String[]numar=num.split(“x |”)太棒了,太快了!谢谢。