Regex: Как мне сопоставить логику регулярных выражений 1 или более раз? - PullRequest
0 голосов
/ 05 июня 2010

У меня уже есть некоторая логика регулярных выражений, которая говорит, что нужно искать тег div с классом = что-то. Однако это может происходить более одного раза (один за другим). Вы не можете просто добавить квадратные скобки вокруг этой сложной логики регулярных выражений (например, [: некоторая сложная логика регулярных выражений уже существует:] * - так как вы делаете это в регулярном выражении? Я хочу избежать необходимости использовать логику языка программирования для добавь эту логику регулярных выражений за собой, если смогу ...

Спасибо

1 Ответ

1 голос
/ 05 июня 2010

Не разбирайте HTML с регулярным выражением! Серьезно, в общем случае это буквально невозможно.

Чтобы ответить на ваш вопрос о регулярном выражении: если у вас есть произвольно сложное регулярное выражение R, вы можете сделать с ним следующие вещи:

  • (R) соответствует R и сохраняет его в группе захвата.
  • (?:R), если поддерживается вашим механизмом регулярных выражений, соответствует R, не сохраняя его в группе захвата.

Другими словами, группа скобок; квадратные скобки, с другой стороны, предназначены только для классов символов. Возможно, вы хотите что-то вроде (с лучшим регулярным выражением для вашего div) (?:<div class="something">\s*)+: сопоставьте div с любым количеством пробелов и найдите это один или несколько раз. Но, пожалуйста, пересмотрите использование regexen для этого - хотя это удобный инструмент для многих вещей, HTML не является одним из них.

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