基于单词的正则表达式拆分字符串

时间:2016-06-27 11:04:05

标签: java regex

我有一个像

这样的表达式
  

'变量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;。

2 个答案:

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