Как написать регулярное выражение для замены пробелов между тегами span - PullRequest
0 голосов
/ 01 февраля 2011

Я хочу, чтобы пространство между тегами span было заменено на  

<span style="font-size:11;color:black"> </span>

Я написал это регулярное выражение:

Regex.Replace(xml, @"<span[^>]*?>\s*</span>", (match) => match.Value.Replace(" ", "&nbsp;"), RegexOptions.IgnoreCase);

Но это даст мне такой вывод:

<span&nbsp;style="font-size:11;color:black">&nbsp;</span>

Также ставит &nbsp; после интервала.

Ответы [ 2 ]

1 голос
/ 01 февраля 2011

Вы можете использовать

@"(?<=<span[^>]*?>)\s*(?=</span>)"

как ваше регулярное выражение.

Имейте в виду, что синтаксический анализ HTML с помощью регулярных выражений не одобряется и будет ужасно прерываться при обнаружении (среди прочего) комментариев HTML и JavaScript.

0 голосов
/ 01 февраля 2011

Использовать Regex.Replace

Regex regex = new Regex(@"<span([^>]*)>\s*</span>");
String output = regex.Replace(input, "<span$1>&nbsp;</span>");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...