Java中的Regex lookbehind
我对java中的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 (
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 |”)太棒了,太快了!谢谢。