Java 如何将运算符上的逻辑表达式拆分为分隔符,同时将它们保留在结果中?

Java 如何将运算符上的逻辑表达式拆分为分隔符,同时将它们保留在结果中?,java,regex,logical-operators,Java,Regex,Logical Operators,类似于,我想拆分我的逻辑表达式 A>=10和B=,10,和,B,您需要的正则表达式如下所示: \(.*\)|[^\s]+ 你可以找到一个有解释的例子 在Java中,您必须匹配正则表达式,而不是对其进行拆分。 使用括号(\(.*\)|[^\s]+可以创建组,如下例所示: import java.util.regex.Matcher; import java.util.regex.Pattern; ... public static void main(String[] args) {

类似于,我想拆分我的逻辑表达式
A>=10和B=
10
B
您需要的正则表达式如下所示:

\(.*\)|[^\s]+
你可以找到一个有解释的例子

在Java中,您必须匹配正则表达式,而不是对其进行拆分。 使用括号
(\(.*\)|[^\s]+
可以创建组,如下例所示:

import java.util.regex.Matcher;
import java.util.regex.Pattern;

...

 public static void main(String[] args) {
    String ex = "A >= 10 AND B <= 20 OR C in ('3', '4')";
    String regex ="(\\(.*\\)|[^\\s]+)+";
    Pattern p = Pattern.compile(regex);
    Matcher m = p.matcher(ex);
    while(m.find()) {
       System.out.println(m.group(1));
    }
 }
import java.util.regex.Matcher;
导入java.util.regex.Pattern;
...
公共静态void main(字符串[]args){

字符串ex="A>=10和B逐字符扫描字符串维护变量,如string currentToken、List tokens、boolean insideBrackets或int bracketDepth。在基本示例中,您也可以使用正则表达式提取标记,但当您开始嵌套括号时,这将达到其极限。我很高兴能帮助您ut.正是我需要的…但是我如何在上面拆分呢?字符串键[]=inputRule.split(“\(.*\)|[^\\s]+”);我写了这个数组,但它包含空白字符
import java.util.regex.Matcher;
import java.util.regex.Pattern;

...

 public static void main(String[] args) {
    String ex = "A >= 10 AND B <= 20 OR C in ('3', '4')";
    String regex ="(\\(.*\\)|[^\\s]+)+";
    Pattern p = Pattern.compile(regex);
    Matcher m = p.matcher(ex);
    while(m.find()) {
       System.out.println(m.group(1));
    }
 }