gpt4 book ai didi

Java:分割分号分隔的字符串但忽略引号中的转义+分号

转载 作者:行者123 更新时间:2023-11-30 07:05:16 30 4
gpt4 key购买 nike

我想拆分我的查询,但没有得到完全符合我要求的答案。

我的字符串如下:

select 1;select \\2; select 3\\;copy customer from 's3://mybucket/mydata' credentials 'aws_access_key_id=access_key\\;aws_secret_access_key=secret_key\\;master_symmetric_key=master_key'

期望的输出:

select 1

select \\2

select 3\\

copy customer from 's3://mybucket/mydata' credentials 'aws_access_key_id=access_key\\;aws_secret_access_key=secret_key\\;master_symmetric_key=master_key'

我找到了关于逃生者的解决方案。但不符合我的要求。

(?<!\\);

Handling delimiter with escape characters in Java String.split() method

如何忽略引号中的转义+分号?

帮助我。

最佳答案

我认为这是一个解决方案:

String line = "select 1;select \\2; select 3\\;copy customer from 's3://mybucket/mydata' credentials 'aws_access_key_id=access_key\\;aws_secret_access_key=secret_key\\;master_symmetric_key=master_key'";
line = line.replace("\\","\\\\");//To avoid missing \
String[] tokens = line.split(";(?=([^']*'[^']*')*[^']*$)");//To split on semmicolons, but not those inside quotes
for(String t : tokens) {
System.out.println("> "+t);
}

你可以在这里测试一下 http://rextester.com/MLTA75734

关于Java:分割分号分隔的字符串但忽略引号中的转义+分号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40255814/

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