Проблемы с поиском / заменой в строке - PullRequest
0 голосов
/ 02 октября 2018

У меня проблемы с поиском / заменой значения в строке.Не знаю, стоит ли мне это делать в RegEx или в C # есть какая-то изящная функция, чтобы заставить его работать.Regex дает мне преимущество.

Проблема:

<doc name="tester" value="p1,p2,p3" />

Так что я хочу "значение" (p1, p2, p3) и заменить его текущим значением + ", p4".

Любая помощь оценена.

1 Ответ

0 голосов
/ 02 октября 2018

Несмотря на то, что вы получаете головную боль 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;
...