在值之间用逗号拆分字符串并忽略值内的逗号
Split String by comma between values and ignore comma inside a value
我有一个这样的字符串输入:
"null, value1(String), value2-1, value2-2. (String), value3(Long)";
我想像这样拆分这个字符串
输出:字符串[] 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 : 我无法更改输入:)
谁能帮帮我? :)
此致,
你可以试试这个基于回顾的拆分正则表达式:
String[] arr = input.split("(?<=null|\))\s*,\s*");
(?<=null|\)
是先行断言前一个位置是逗号前的 null
或 )
。
我有一个这样的字符串输入:
"null, value1(String), value2-1, value2-2. (String), value3(Long)";
我想像这样拆分这个字符串
输出:字符串[] 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 : 我无法更改输入:)
谁能帮帮我? :)
此致,
你可以试试这个基于回顾的拆分正则表达式:
String[] arr = input.split("(?<=null|\))\s*,\s*");
(?<=null|\)
是先行断言前一个位置是逗号前的 null
或 )
。