Java Regex – 在空格上拆分字符串 – 忽略引号中的空格和转义引号
我正在寻找正则表达式在Java中执行以下操作:
String originalString = ""; String splitString[] = originalString.spilt(regex);
一些测试用例:
Original1: foo bar "simple" Spilt1: { "foo", "bar", "\"simple\"" } Original2: foo bar "harder \"case" Spilt2: { "foo", "bar", "\"harder \"case\"" } Original3: foo bar "harder case\\" Spilt3: { "foo", "bar", "\"harder case\\"" }
我遇到的一些片段:
# Does not react to escaped quotes (?=([^\"]*\"[^\"]*\")*[^\"]*$) # Finds relevant quotes that surround args (?<!\\)(?:\\{2})*\"
谢谢!
String stringToSplit = This is the string to split; String[] split = stringToSplit.split("character to split at");
在这种情况下, split[0]
将导致’This’, split[1]
将是’is’, split[2]
将是’the’, split[3]
‘ split[4]
‘将导致’ split[5]
‘ split[5]
‘分裂’。
此时你可以做到
var0 = split[0]; var1 = split[1]; var2 = split[2];
其中var0
等于“This”等等……
希望这可以帮助。
像这样的正则表达式适用于简单的情况:
("(.+?)(?
但我不建议使用RegEx执行此任务,而是查看CSV解析器。