我需要这样实现的目的是,实现字符串表达式的嵌套,如
left(left( 'abc=efg ',4),1)怎么样把最外一层参数分割开来
可能的参数组合包括:
left( 'abc=efg ',4),1
left( 'abc=efg ',4), '= '
'abc=efg ',left( 'abc=efg ', '= ')
left( 'abc=efg ',2),left( 'abc=efg ', '= ')
------解决方案--------------------
搞得有点复杂了,不懂
------解决方案--------------------
学习期待中。。。。
------解决方案--------------------
是不是如何得到:left( 'abc=efg ',4),1?
如果是的话,用栈的思想,很容易办到
------解决方案--------------------
如果只嵌套一层可以这样:
String str = "left( 'abc=efg ',4),1 ";
String[] strs = str.split( "(? <=^[^(]+|^[^(]*\\([^)]*\\)[^(]*), ");
for (int i = 0; i < strs.length; i++) {
System.out.println(strs[i]);
}
如果是未知层次嵌套,Java自带的正则引擎是做不到的。可以自己用堆栈实现