2013-10-02 3 views
1

Следующая регулярное выражение не работает на 100% правильно ...Regex: Grep специальный символ в HTML-теги-атрибуты

~<?<.*?(")|(\s)|(:)|(;)|(,).*?[>]~gm 

в этой строке

<span style="font-family: verdana,sans-serif;"><strike>Strike</strike></span>::<b><strike>Bold-Strike</strike></b>::<b><i><strike>Bold-Strike-Italic</strike></i></b>::<strike><b>Bold-Strike</b></strike><strike><b><i><u><font size="6"><strike><b>Bold-Strike-Font</b></strike></font></u></i></b></strike>::<u><strike>Strike2</strike></u> 

Мне нужно, чтобы соответствовать все специальные символы в HTML-тэгов-атрибутов (=, ", -, :)

+0

Все выражение не имеет смысла, чего вы пытаетесь достичь? Кроме того, FYI не существует модификатора 'g' в PHP/PCRE. – HamZa

ответ

2

Вы могли бы попробовать это регулярное выражение:

(?:<|\G)[^<>=":,; -]*([ =":,;-](?=[^<>]*>)) 

regex101 demo

\G соответствует концу первого матча и позволяет получить все «специальные символы» в том же теге.

+0

еще раз спасибо, jerry;) – Nico

+0

Добро пожаловать @Nico :) – Jerry

+0

@Nico Кстати, вам все еще нужна помощь с другим вопросом? Я не мог правильно прочитать сообщение на другом сайте из-за тегов html. – Jerry

Смежные вопросы