我有一个用例,我想在给定字符串中的 <、>、<=、>= 和 = 之间搜索运算符,并将表达式拆分为两部分,即右表达式和左表达式,然后求值在评估最终条件运算符之前分别对它们进行处理。
这可以从下面的例子中理解:
Pattern pattern1 = Pattern.compile("(.*?)(<|>|<=|=|>=)(.*)");
Matcher matcher2 = pattern1.matcher("4>=5");
while (matcher2.find()) {
System.out.println(matcher2.group(1) + ";" + matcher2.group(2)+ ";" + matcher2.group(3));
}
输出:
4;>;=5
预期输出为 4;>=;5
但是>=
运算符因为运算符 >
的存在而 split 独立。
我想评估子句(<|>|<=|=|>=)
以贪婪的方式使得>=
被视为一个单独的实体,如果它们一起出现,则会被列出。
最佳答案
你可以尝试简化为
pattern1 = Pattern.compile("(.*?)(>=?|<=?|=)(.*)");
关于java - 在 Java 中使用正则表达式贪婪搜索字符串模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13093936/