我正在寻找正则表达式在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})*\"
谢谢!
答案 0 :(得分:1)
("(.+?)(?<![^\\]\\)")|\S+
但是我不建议使用RegEx来完成这项任务,而是看看CSV解析器。
答案 1 :(得分:0)
String stringToSplit = This is the string to split;
String[] split = stringToSplit.split("character to split at");
在这种情况下,split[0]
会导致&#39;这个&#39;,split[1]
将是&#39;是&#39;,split[2]
将是&#39; &#39;,split[3]
&#39;字符串&#39; split[4]
&#39;到&#39; split[5]
&#39;分裂&#39;。
此时你可以做到
var0 = split[0];
var1 = split[1];
var2 = split[2];
var0
等于&#34;这个&#34;
等等...
希望这会有所帮助。