我有一个像
这样的表达式'变量1' > 0和<变量2< 0或<变量3> 50
我希望使用正则表达式基于逻辑运算符(例如&#34;和&#34; 和&#34;或&#34; )拆分此字符串。< / p>
预期产出:
&#39;变量1&#39; &GT; 0
和
&#39;变量2&lt; 0
或
&#39; Variable3&gt; 50
使用括号更多复杂表达式:
((a1> 40或a5 <50)和a2> 30)或a4> 50
如果有任何正文帮助我使用正则表达式将这些表达式拆分为类似&#39;和&#39;的连接符。和&#39;或&#39;。
答案 0 :(得分:0)
Pattern p = Pattern.compile("\\s(and|or)\\s");
Matcher m = p.matcher(input);
String output = m.replaceAll("\n$1\n");
\n
不是您需要的行分隔符吗?
可以附加从System.getProperty("line.separator")
检索的变量
答案 1 :(得分:0)
我相信你应该匹配而不是分裂,特别是当你有一个复杂的表达时:
String pattern="\w+\s*[<>]\s*\d+|and|or";
Matcher m= Pattern.compile(pattern).matcher(input);
while(m.find())
{
System.out.println(m);
}