![](/img/trans.png)
[英]How to Split a String on mathematical operators as delimiters but escape operators inside quotes (in java)?
[英]How to split a string in java by logical operators (and, or) but not consider them if they appear in quotes?
我有一个字符串,需要按逻辑运算符“和”,“或”(不区分大小写)进行拆分。 但是,如果这些逻辑运算符模式用单引号或双引号引起来,则我不应该考虑它们。 样本模式:
contains(field1,'sample')或contains(field2,'aaandbb')AND(field3 gt 5000)
我正在尝试实现的拆分输出:
含有(FIELD1, '样本')
含有(FIELD2, 'aaandbb')
(field3 gt 5000)}
注意:请忽略括号。
我的代码:
String soregex1="\\s+(?i)(and)|(or)\\s+";
String[] splitStr = so1.split(soregex1);
for(String str1:splitStr) {
System.out.println(str1);
}
除了模式(即条件运算符)开始作为字符串条件的值出现以外,其他所有方法都很好。 例如:
contains(field1,'sam或ple')或contains(field2,'aa和bb')AND(field3 gt 5000)
以上代码与我的代码的输出是:
包含(FIELD1,“山姆
PLE“)
包含(场2,'AA
BB')
(field3 GT 5000)
代替
包含(field1,'sam或ple')
包含(field2,'aa和bb')
(field3 GT 5000)
我还需要考虑转义的单引号或双引号。 感谢有关如何避免考虑单引号或双引号中出现的模式匹配的任何建议。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.