gpt4 book ai didi

java - 简单 SQL 正则表达式的问题

转载 作者:行者123 更新时间:2023-12-01 09:37:13 24 4
gpt4 key购买 nike

我有一个任务将列从 SQL 语句中拆分出来。这对我来说效果很好,在“,”上进行了简单的 Java 分割。但现在我遇到了列内额外逗号的问题。我想这个问题的答案很简单,但我不会想到。

示例:

来源:

"Col_A BIGINT , COL_B TIMESTAMP , COL_C DECIMAL(10,30) , COL_D VARCHAR(20)"

我想要的输出:

Array[0] = Col_A BIGINT
Array[1] = COL_B TIMESTAMP
Array[2] = COL_C DECIMAL(10,30)
Array[3] = COL_D VARCHAR(20)

真实(和显而易见的)输出:

Array[0] = Col_A BIGINT
Array[1] = COL_B TIMESTAMP
Array[2] = COL_C DECIMAL(10
Array[3] = 30)
Array[4] = COL_D VARCHAR(20)

明显的问题是两个小数之间的逗号 (COL_C)。

现在我想问你这个问题是否有一个好的解决方案。我真的想使用单个拆分来接收不同的列。但如何避免小数点描述处的错误分割。

希望大家能够理解我的问题。英语不是我的母语。

最佳答案

您只需使用正则表达式分割给定的字符串:,(?!\d)

找到后面不跟数字的,

代码示例:

System.out.println(Arrays.toString("Col_A BIGINT , COL_B TIMESTAMP , COL_C DECIMAL(10,30) , COL_D VARCHAR(20)".split(",(?!\\d)")));

Demo and Explaination of regex

关于java - 简单 SQL 正则表达式的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38783688/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com