Java 逗号分隔,除非逗号位于两个数字之间
考虑以下字符串Java 逗号分隔,除非逗号位于两个数字之间,java,regex,Java,Regex,考虑以下字符串 String s=“va1,var2,aVar,var4,my_var55十进制(20,4)” 我之前只是使用.split(“,”来获取变量标记,而没有考虑十进制(20,4)。正则表达式应该是这样的,如果逗号出现在两个数字之间,那么它就不应该拆分。在split()中使用什么正则表达式,以便获得以下结果: [“var1”、“var2”、“aVar”、“var4”、“my_var55 DECIMAL(20,4)”] 请注意,变量可以以数字结尾,但不能以数字开头。您可以使用 Strin
String s=“va1,var2,aVar,var4,my_var55十进制(20,4)”
我之前只是使用.split(“,”
来获取变量标记,而没有考虑十进制(20,4)
。正则表达式应该是这样的,如果逗号出现在两个数字之间,那么它就不应该拆分。在split()
中使用什么正则表达式,以便获得以下结果:
[“var1”、“var2”、“aVar”、“var4”、“my_var55 DECIMAL(20,4)”]
请注意,变量可以以数字结尾,但不能以数字开头。您可以使用
String[] result = s.split(",(?!\\d)\\s*");
见
详细信息
-逗号,
-后面不紧跟数字(?!\d)
-0个或多个空格字符\s*
String s=“va1,var2,aVar,var4,my_var55 DECIMAL(20,4)”;
字符串[]结果=s.split(“,(?!\\d)\\s*”;
for(字符串x:结果){
系统输出println(x);
}
输出:
va1
var2
aVar
var4
my_var55 DECIMAL(20,4)
你可以用
String[] result = s.split(",(?!\\d)\\s*");
见
详细信息
-逗号,
-后面不紧跟数字(?!\d)
-0个或多个空格字符\s*
String s=“va1,var2,aVar,var4,my_var55 DECIMAL(20,4)”;
字符串[]结果=s.split(“,(?!\\d)\\s*”;
for(字符串x:结果){
系统输出println(x);
}
输出:
va1
var2
aVar
var4
my_var55 DECIMAL(20,4)
你可以用
(?<=\S),(?!\h*\d)\h*
输出
va1
var2
aVar
var4
my_var55 DECIMAL(20,4)
为了不在字符串末尾的逗号上拆分,您还可以断言逗号后面除了数字之外还有一个单词char
(?<=\S),(?=\h*\b[^\W\d])
(?您可以使用
(?<=\S),(?!\h*\d)\h*
输出
va1
var2
aVar
var4
my_var55 DECIMAL(20,4)
为了不在字符串末尾的逗号上拆分,您还可以断言逗号后面除了数字之外还有一个单词char
(?<=\S),(?=\h*\b[^\W\d])
使用(?使用)?