Веб Дизайн - статьи


Требования к выражению


  1. справа от имени атрибута должен быть пробел
  2. слева от значения должен быть пробел или закрывающая тег скобка
  3. значение должно быть заключено в одинарные или двойные кавычки
  4. между знаком равенства, именем атрибута и его значением могут быть пробелы

Опишем задачу формальным языком:

  1. Найдём 1 или больше символов \s
  2. Захватим 1 или больше символов \w
  3. Захватим 0 или больше символов \s
  4. Захватим подстроку '='
  5. Захватим 0 или больше символов \s
  6. Начнём захватывать символы в последовательность

    1. Захватим подстроку из набора '»'

  7. Завершим захватывать совпадения.
  8. Захватим 0 или больше символов, не входящих в набор символов, найденный на шагах 6-7 (ссылка на последовательность 1)
  9. Захватим символ, найденный на шагах 6-7 (ссылка на последовательность 1)

Переводим в операторы регулярного выражения:

  1. \s+
  2. \w+
  3. \s*
  4. =
  5. \s*
  6. (

    1. ['»]

  7. )
  8. [^\1]*
  9. \1

Получается следующее регулярное выражение:

\s+\w+\s*=\s*(['"])[^\1]*\1

Модифицируем его, чтобы выражение совпадало только с именем атрибута 'class' и его значением 'content':

\s+class\s*=\s*(['"])content\1




- Начало -  - Назад -  - Вперед -



Книжный магазин