我有一个像
这样的字符串"isnull(col_name,0)<>1 or isnull(col1_name,0)=0 and isnull(col2_name,0)>=100... "
我想将以下字符串中的字符串转换为:
“(col_name is null or col_name<>1)
或(col1_name is null or col1_name=0)
和(col2_name is null or col2_name>=100)
...”
我想在JAVA中实现它。我尝试过使用split函数,但每次都不是类似的情况(意味着两者之间可能有'OR'或'AND',所以如何拆分?)。 然后我尝试使用contains函数,但是如何以所需的形式替换isnull的完整部分。 (我也试过使用字符数组,它工作得有点好,但根据我的代码在某处失败。)
实际上我用不同的方式尝试了很多但是我无法构建能够快速工作的良好逻辑。
请给我一些好主意。抱歉我的英语不好。
感谢。
答案 0 :(得分:4)
str.replaceAll("isnull\\(([^,]+),\\d+\\)([^\\d]+)(\\d+)", "($1 is null or $1$2$3)");