Несмотря на то, что вы получаете головную боль Regex, это на самом деле очень просто сделать со следующим регулярным выражением:
@"(?<=value=\"")[^""]+"
Все начинается с поиска 'value="
', затем оно соответствует всем символам вплоть дозаканчивающийся двойным quote
.
string test = @"<doc name=""tester"" value=""p1,p2,p3"" />";
Regex regex = new Regex(@"(?<=value=\"")[^""]+");
string result = regex.Replace(test, "p1,p2,p3,p4");
// result will be: @"<doc name=""tester"" value=""p1,p2,p3,p4"" />";
Редактировать : Конечно, вы можете захватить оригинальный контент, просто позвонив по номеру:
string match = regex.Match(test).Value;