Группировка Регулярное выражение BackReferences - PullRequest
0 голосов
/ 08 января 2009

У меня есть следующий RegEx

id=(.*?) | id="(.*?)"

Причина этого в том, что я пытаюсь заменить идентификаторы из DOM браузеров, используя JavaScript. IE, тем не менее, удаляет кавычки из атрибутов элемента, поскольку они не требуют их в DOM

Проблема, с которой я столкнулся, состоит в том, что обратные ссылки из каждого альтернативного оператора находятся в отдельных группах ($ 1 и $ 2), поскольку совпадение только одно ИЛИ другое. Могу ли я вернуть обе ссылки как одну обратную ссылку?

EDIT:

<div id="test1" /><div id=test2 />

будет соответствовать следующим образом

    match         |  $1   |   $2
--------------------------------
    id="test1"    | test1 |
    id=test2      |       |  test2

Я просто хочу, чтобы обе обратные ссылки были добавлены к $ 1

Ответы [ 3 ]

0 голосов
/ 08 января 2009
id="?([\w-]*)"?
0 голосов
/ 09 января 2009

Я бы использовал

id\s*=\s*("[^"]*"|'[^']*'|[^\s>]*)

Это будет соответствовать

id="foo"
id='bar'
id=baz

Но чтобы получить только значение атрибута, вы должны убрать " или ' в начале / конце, если он окружен кавычками.

0 голосов
/ 08 января 2009

а как же:

id="?(.*?)"?

(возможно, это должно быть [^ "] - я не проверял)

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