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

       

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


  • справа от имени атрибута должен быть пробел
  • слева от значения должен быть пробел или закрывающая тег скобка
  • значение должно быть заключено в одинарные или двойные кавычки
  • между знаком равенства, именем атрибута и его значением могут быть пробелы
  • Опишем задачу формальным языком:

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

    1. Захватим подстроку из набора '»'
    2. Завершим захватывать совпадения.


    3. Захватим 0 или больше символов, не входящих в набор символов, найденный на шагах 6-7 (ссылка на последовательность 1)
    4. Захватим символ, найденный на шагах 6-7 (ссылка на последовательность 1)
    5. Переводим в операторы регулярного выражения:

    6. \s+
    7. \w+
    8. \s*
    9. =
    10. \s*
    11. (

      1. ['»]
      2. )
      3. [^\1]*
      4. \1
      5. Получается следующее регулярное выражение:

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

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

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



        Содержание раздела