<p>I am trying to use C# to parse CSV. I used regular expressions to find <code>","</code> and read string if my header counts were equal to my match count.</p>

<p>Now this will not work if I have a value like:</p>

<pre><code>"a",""b","x","y"","c"
</code></pre>

<p>then my output is:</p>

<pre><code>'a'
'"b'
'x'
'y"'
'c'
</code></pre>

<p>but what I want is:</p>

<pre><code>'a'
'"b","x","y"'
'c'
</code></pre>

<p>Is there any regex or any other logic I can use for this ?</p>

In order to have a parseable CSV file, any double quotes inside a value need to be properly escaped somehow.  The two standard ways to do this are by representing a double quote either as two double quotes back to back, or a backslash double quote.  That is one of the following two forms:
""
\"
In the second form your initial string would look like this:
"a","\"b\",\"x\",\"y\"","c"
If your input string is not formatted against some rigorous format like this then you have very little chance of successfully parsing it in an automated environment.