我有一个像这样的字符串输入:
"null, value1(String), value2-1, value2-2. (String), value3(Long)";
我想像这样分割这个字符串
输出:String [] SplittedTab;
SplittedTab[0] = "null";
SplittedTab[1] = "value1(String)";
SplittedTab[2] = "value2-1, value2-2. (String)";
SplittedTab[3] = "value3(Long)";
我从简单的分割功能开始:
input = input.split(",");
但我明白了:
SplittedTab[0] = "null";
SplittedTab[1] = "value1(String)";
SplittedTab[2] = "value2-1";
SplittedTab[3] = " value2-2. (String)";
SplittedTab[4] = "value3(Long)";
value2也被拆分,因为这里有逗号。:))
我认为用正则表达式分割输入是可能的,但我在正则表达式上是一个菜鸟:s
P.S:我无法改变输入:)
任何人都可以帮助我吗? :)
致以最诚挚的问候,
答案 0 :(得分:4)
你可以根据lookbehind尝试这个拆分正则表达式:
String[] arr = input.split("(?<=null|\\))\\s*,\\s*");
(?<=null|\\)
预示在逗号之前断言前一个位置为null
或)
。