Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Регулярные выражения задача посложнее (https://javascript.ru/forum/misc/1767-regulyarnye-vyrazheniya-zadacha-poslozhnee.html)

faunder 15.09.2008 12:55

Регулярные выражения задача посложнее
 
Код:

var element = 'anyElement';

pat = new RegExp('(<'+element+'>)([\s\S]*?)(</'+element+'>)', 'gmii');

Нужно найти содержимое между тегами.

Заранее имена тегов не известны и они должны подставлятся в регулярное выражение. Это регулярное выражение не работает. Поскажите способ, как подставить значение переменной (в которой хранится имя тэга) в регулярное выражение, чтобы оно находило всё содержимое между открывающим и зактывающим тэгом.

Kolyaj 15.09.2008 13:28

Навскидку, тестировать лень
pat = new RegExp('(<'+element+'>)([\\s\\S]*?)(</'+element+'>)', 'gmi');

ZoNT 15.09.2008 13:38

Цитата:

Сообщение от Kolyaj (Сообщение 5753)
Навскидку, тестировать лень
pat = new RegExp('(<'+element+'>)([\\s\\S]*?)(</'+element+'>)', 'gmi');

pat = new RegExp('<'+element+'>(.*?)<\/'+element+'>', 'gmi');

faunder 15.09.2008 13:52

Kolyaj и ZoNT спасибо вам всё работает!

Kolyaj 15.09.2008 14:11

ZoNT, конструкция .*? не захватывает переводы строк.

ZoNT 15.09.2008 14:17

Угу. Но если парсится не вручную писанный код, то там нет переводов строк.


Часовой пояс GMT +3, время: 20:41.