I am receiving some pretty ugly data from a source and need to address the issue with a regular expression. Asking the provider to clean up the data source is not possible. My data looks like this:

string 1, string 2,,"string,4",string 5

There are two complications here, as I see it. I need to match the empty string in the 3rd field and I need to capture "string,4" as the 4th field. The hardest part has been trying to figure out how to handle the comma in the quotes. I have been playing around with lookahead/lookbehind assertions but haven't had much luck. Also, while I am not positive, I need to assume that any field can be quoted any time and expect a line such the one below and not expect it to be consistent:

string 1, "string,2",,string 4,string 5

Anyone have suggestions?