Регулярка для вложенных "тегов" типа [[tag? &attr="[[nested]]"]]
Есть такой "тег": [[tag]]. Нужно регуляркой найти этот тег. Поблема в том что внутри тэга может быть сколько угодно других таких тегов, как по количеству на уровне, так и по уровню вложенности, например
[[tag? &attr="[[nested]]" &anotherattr="[[$[[yet]]]]" ]] Причем таких тегов может быть несколько. Вот ломаю голову, как составить регулярку, отлавливающую теги (нужны теги только верхнего уровня, тоесть вложенные не нужны). И вобще, реально ли ее составить? И если нет, может кто-нибудь помочь составить регулярку для ограниченного уровня вложенности? Например для 3-х уровней? Или как-то программно сгенерировать для скажем 10 уровней (этого точно должно хватить)? По идее получится большая регулярка, но на производительность особо этож не должно влиять? У меня обычно не более 10 тегов верхнего уровня и не более 3-4 уровней вложенности. |
что именно из этого:
Цитата:
|
Допустим, есть текст:
Заголовок: [[*longtitle:default=`[[*pagetitle]]`]] Лорем ипсум [[tag]] долор сит [[~[[*id]]]] амет... Нужно получить: [ 0: "[[*longtitle:default=`[[*pagetitle]]`]]", 1: "[[tag]]", 2: "[[~[[*id]]]]" ] Реально ли такую задачу решить через регулярки? |
danik.js,
Вариант... var reg = /\[\[.*?\]\](\s|$)/g, str = 'Заголовок: [[*longtitle:default=`[[*pagetitle]]`]] Лорем ипсум [[tag]] долор сит [[~[[*id]]]] амет...' alert(str.match(reg).join("\n")) |
Цитата:
рони, св :) |
Цитата:
|
Часовой пояс GMT +3, время: 14:33. |