Регулярное выражение заменяет все, кроме строки - PullRequest
0 голосов
/ 03 декабря 2018

Я использую регулярные выражения для замены любого форматирования внутри тегов span, используя следующее выражение, и оно работает.

retValue = System.Text.RegularExpressions.Regex.Replace(retValue, @"<span[^>]*>", "<span>");

Теперь я хотел бы заменить любое форматирование внутри тегов span, кроме 'Underline',Например, в следующей строке я хотел бы удалить форматирование во втором теге span, но сохранить форматирование первого тега span.

 string retValue = "<p><span style=\"text-decoration: underline;\">Test Underline</span></P><p><span style="color:blue">blue</span></p>";

Таким образом, мое retValue должно быть:

retValue = "<p><span style=\"text-decoration: underline;\">Test Underline</span></P><p><span>blue</span></p>";

Я попытался использовать следующее выражение, но оно ничего не заменяет.Я пытаюсь понять, что не так с этим кодом и как я могу достичь ожидаемого результата.

retValue = System.Text.RegularExpressions.Regex.Replace(retValue, @"<span[^style=\""text-decoration:underline;>]*>", "<span>");

1 Ответ

0 голосов
/ 03 декабря 2018

Вам необходимо правильно экранировать специальный символ:

var pattern = "\\<span[^style\\=\\\"text\\-decoration\\:underline\\;\\>]*>";
retValue = System.Text.RegularExpressions.Regex.Replace(retValue, pattern, "<span>");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...