do you have to use sed? awk would be a better choice...
Code:
$ cat test.txt
a|b|c|d|e
aa|bb|cc|d|e
x|y|z|c|e
x|y|c|f|r
$ awk -F"|" '{if($3 == "c")print}' test.txt
a|b|c|d|e
x|y|c|f|r
##And sed if you must....
$ sed "/^.*|.*|c|.*|.*/ ! d" test.txt
a|b|c|d|e
x|y|c|f|r
Also the problem with your sed line... is you are matching the following in quotes... sed for the most part is greedy which is why you are getting the second line matched.
Code:
"a|b|c|"d|e
x|"y|z|c|"e
"x|y|c|"f|r