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));
}
}