现有字符串:
people(aa, bb) VALUES (1, 2)
(注意, people 后面没有空格, VALUES 后面有一个空格)
我需要把它分割成:
people
(aa
bb)
VALUES
(1
2)
语言是 Java
我不太会的点在于:我希望把空格和逗号吃掉,但是保留括号
我现在的进展:
public class T {
public static void main(String[] args) {
String str = "people(aa, bb) VALUES (1, 2)";
String parts[] = str.split(",| |(?=[\\(])");
for (String part : parts) {
System.out.println(part);
}
}
}
应该怎么写呢?
这次应该真的解决了,用这个
(,| |(?=.)(?=\\())
1
starvedcat OP (?=regex)这个用法我是看 http://www.regular-expressions.info/refadv.html 这里的……
|
2
starvedcat OP 连续的空格最多一个(之前有其他的处理)
|
3
starvedcat OP 已解决,用",| |(=[\\(])"就行……现在理解那个用法
|
4
starvedcat OP 真是打搅了,管理员在的话麻烦人工下沉。。。
|
5
rrfeng 2016-11-27 15:06:35 +08:00
split 只能根据『某个字符』切割,没法根据『某个位置』切割。虽然 regex 里有表示『某个位置』的语法。
所以一次应该是不行的,可以考虑加一次替换。 |
6
rrfeng 2016-11-27 15:07:13 +08:00
@starvedcat 看来我肤浅了。。。。
|
7
starvedcat OP 等等,搞错了,还是没解决= = 继续。。。
|
8
starvedcat OP @rrfeng 我脑残了
|