我必須使用逗號(,)作爲分隔符分割字符串,忽略任何逗號即內引號(「)
的Java:拆分使用正則表達式
fieldSeparator : ,
fieldGrouper : "
字符串的String斯普利特是:"1","2",3,"4,5"
我能實現它,如下所示:
String record = "\"1\",\"2\",3,\"4,5\"";
String[] tokens = record.split(",(?=([^\"]*\"[^\"]*\")*[^\"]*$)");
輸出:
"1"
"2"
3
"4,5"
現在的挑戰是,fieldGrouper(「)不應該是分割標記的一部分。我無法找出這個正則表達式。
分割的預期輸出是:
1
2
3
4,5
我認爲這樣做炭的炭實際上會更具可讀性並且速度更快。算法非常簡單。處理可能遲早會出現的'''''異常更容易。 – Dariusz
我們可以問您爲什麼使用格式錯誤的僞JSON輸入?引用的時髦性使得這很難處理,並且清理源代碼可能會更好。 –