我需要拆分逗號分隔的字符串,哪些內容有時在引號之間。一個例子可以是:拆分分隔字符串並刪除轉義序列
1, 「TEST」,22345 「18,95」,AB「CDE
這裏的第一個問題是分裂,只有當逗號不包圍字符串我用一個簡單的正則表達式做了這個,接下來的問題是剪掉引號,它們圍繞着內容,對於「測試」和「18,95」,引號應該被刪除Ab「cde中的引用應該保持不變。這是我到目前爲止的代碼:
List<string> results = Regex.Matches(this.Content, @"[\""](.+?)[\""]|[^,]+")
.Cast<Match>()
.Select(m => m.Value)
.Select(s => s.StartsWith("\"") && s.EndsWith("\"") ? s.Remove(1,1).Remove(s.Length-1,1) : s)
.ToList();
對於第二Select
我得到一個ArgumentOutOfRangeException
因爲第二Remove
不s
工作了。我認爲它應該工作,但不知何故。
如果有更好的方法來做到這一點,我會很樂意瞭解它。
你嘗試一個CSV解析器? –
提示:字符串是不可變的。 – Karolis
@WiktorStribiżew我試圖執行一個 –