Шаблон регулярных выражений для пробелов - PullRequest
1 голос
/ 22 мая 2009

Я создаю библиотеку регулярных выражений для работы с HTML (когда это будет сделано, я опубликую ее в коде MSDN). Один из методов удаляет все пробелы перед закрывающим тегом.

<p>See the dog run </p>

Это устранит пробел перед заключительным абзацем. Я использую это:

    public static string RemoveWhiteSpaceBeforeClosingTag(string text)
    {
        string pattern = @"(\s+)(?:</)";
        return Regex.Replace(text, pattern, "</", Singleline | IgnoreCase);
    }

Как вы можете видеть, я заменяю пробелы на </, так как я не могу соответствовать только пробелу и исключить закрывающий тег Я знаю, что есть выход - я просто не понял этого. </p>

Ответы [ 2 ]

11 голосов
/ 22 мая 2009
\s+(?=</)

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

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

3 голосов
/ 22 мая 2009

Вы хотите шаблон прогнозирования (? =):

\s+(?=</)

Это можно заменить на ""

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...