RegEx, чтобы захватить весь div с определенным идентификатором? - PullRequest
2 голосов
/ 12 августа 2010

У меня есть некоторая разметка, которая содержит скрытый div firebug.(Короче говоря, YUI RTE отправляет контент обратно, включающий скрытый div firebug, который активен)

Итак, в моем опубликованном контенте у меня есть дополнительный div, который я буду удалять на стороне сервера в PHP:

<div firebugversion="1.5.4" style="display: none;" id="_firebugConsole"></div>

Кажется, я не могу получить указатель на регулярное выражение, которое мне нужно написать, чтобы соответствовать этой строке, учитывая, что она не всегда будет такой точной (версия может измениться).

Вся помощь приветствуется!

Ответы [ 4 ]

2 голосов
/ 12 августа 2010

Соответствует этому регулярному выражению -

<div.*id="_firebugConsole".*?/div>
2 голосов
/ 12 августа 2010

Regex - не лучший инструмент для работы, но вы можете попробовать:

<div firebugversion=[^>]*></div>

[…] - это класс символов . Что-то вроде [aeiou] соответствует одному из строчных гласных. [^…] - это отрицательный класс символов. [^aeiou] соответствует одному из всего, кроме строчных гласных.

* - это ноль или более повторение . Таким образом, [^>]* соответствует последовательности чего угодно, кроме >.

Если вы хотите нацелиться именно на id, вы можете попробовать:

<div [^>]*\bid="_firebugConsole"[^>]*></div>

\b - это граница слова якорь.

1 голос
/ 12 августа 2010

Это немного сложнее и, вероятно, не идеально, но оно будет:

  • Соответствует любому div, содержащему атрибут firebugversion
  • Соответствует атрибуту firebugversion независимо от того, в каком порядкеатрибуты появляются в теге
  • Соответствует элементу div, даже если он содержит содержимое или интервал между ним и его закрывающим тегом (я уже видел тег firebug с тегом; внутри него ранее) Примечание: он выполняет ленивое соответствиепоэтому он будет соответствовать только следующему тегу, а не последнему, найденному в документе

<(div)\b([^>]*?)(firebugversion)([^>]*?)>(.*?)</div>

1 голос
/ 12 августа 2010

Я бы предложил это:

 \<div firebugversion="(.+)" style="(.+)" id="(.+)"\>

Тогда у вас есть три группы:

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