Регулярное выражение для удаления строк HTML - PullRequest
0 голосов
/ 27 июня 2009

Я пытаюсь удалить часть строки, которая не соответствует моему шаблону. Например, в

<SYNC Start=364><P Class=KRCC>
<Font Color=lightpink>abcd

Я хотел бы удалить

<P Class=KRCC><Font Color=lightpink>

Как мне это сделать?

Ответы [ 3 ]

3 голосов
/ 27 июня 2009

Ваш вопрос не означает, что вам нужно (или нужно использовать) регулярные выражения. Если вы хотите удалить фиксированную строку, выполните традиционный поиск и замену.

1 голос
/ 27 июня 2009

Если HTML-код, который вы анализируете, действителен и всегда соответствует известному стандартному формату, вы можете использовать не жадные шаблоны, чтобы удалить большую часть того, что вам не нужно.

Эти образцы необходимо будет изменить на основе инструмента / инфраструктуры, которые вы используете для обработки регулярных выражений. Я не экранирую специальные символы для краткости.

Для соответствия любым тегам абзаца:

<p.*?>(.*?)</p>

Вы бы заменили эти совпадения на $ 1 (или любой другой синтаксис, необходимый для доступа к группам).

Важно использовать не жадные (?) Шаблоны, чтобы избежать случайного сопоставления двух несвязанных начальных / конечных тегов. Например:

<p.*>(.*)</p>

Будет вести себя совсем по-другому. В случае следующего примера HTML, он не будет правильно соответствовать двум абзацам:

<p>Lorem ipsum.</p><p>Lorem ipsum.</p>

Вместо этого он будет соответствовать "<p>Lorem ipsum.</p><p>" в качестве первой части, что приведет к потере содержимого.

Если вам нужно сопоставить абзацы с определенными классами, вы можете использовать что-то вроде этого:

<p.*?class="delete".*?>(.*?)</p>

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

<p>no class</p>
<p class=delete>no quotes</p>
<p class="delete">double quotes</p>
<p class='delete'>single quotes</p>
<p>space in closing tag</p >
<p>no closing tag
1 голос
/ 27 июня 2009

Просто сопоставьте `ваш шаблон 'и запишите его в файл или обновите таблицу базы данных. Таким образом, вы удаляете остальных.

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