Hi,
I need to parse a file in TSV format (tab separated values). I use a regex to break down the file into each line, but I cannot find a satisfying one to parse each line. For now I've come up this:
(?<g>("[^"]+")+|[^\t]+)
But it does not work if an item in the line has more than 2 consecutive double quotes.
Here's how the file is formatted: each element is separated by a tabulation. If an item contains a tab, it is encased with double quotes. If an item contains a double quote, it is doubled. But sometimes an element contains 4 conscutive double quotes, and the above regex splits the element into 2 different ones.
Examples:
item1ok "item""2""oK"
is correctly parsed into 2 elements: item1ok and item"2"ok (after trimming of the unnecessary quotes), but:
item1oK "item""""2oK"
is parsed into 3 elements: item1ok, item and "2ok (after trimming again).
Has anyone an idea how to make the regex fit this case? Or is there another solution to parse TSV simply? (I'm doing this in C#).