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

       

Выделение всех тегов


Запишем правила разбора по-русски:

  • Найдём подстроку '<'
  • Начнём захватывать символы в последовательность

    1. Захватим одну или более букву алфавита
    2. Завершим захватывать совпадения
    3. Захватим 0 или более символов, не совпадающих с набором символов '>'
    4. Захватим подстроку '>'
    5. Начнём захватывать символы в последовательность

      1. Захватим 0 или более символов, не совпадающих с набором символов '>'
      2. Завершим захватывать совпадения
      3. Теперь, когда задача точно описана, можно приступить к записи её в виде регулярного выражения:

        1. <
        2. (

          1. \w+
          2. )
          3. [^>]*
          4. >
          5. (

            1. [^<]*
            2. )
            3. У нас получилось следующее выражение:



              <(\w+)[^>]*>([^<]*)

              Оно имеет 2 недостатка:

            4. захватывает все теги, а не только парные.
            5. некорректно отрабатывает вложенные теги.


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