|
|
|
Регулярка. Поиск открывающих и соответствующих им закрывающих тегов.
|
|||
|---|---|---|---|
|
#18+
С помощью регулярных выражений хочется решить следующую задачу: Найти все открывающие и соответствующие им закрывающие теги. 1. Нужно чтобы это был один и тот же тег (<span id=a1><span id=a2></span></span> - чтобы мы нашли отдельно спан с id==a1 и закрывающий к нему спан, и отдельно тоже самое для id==a2) 2. Хотелось бы, чтобы регуляка включала поиск всех возможных тегов. (То есть для <b> смотрим </b>, для <div> смотрим </div> и т.д., естественно учитывая степень вложенности). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.11.2007, 18:44 |
|
||
|
Регулярка. Поиск открывающих и соответствующих им закрывающих тегов.
|
|||
|---|---|---|---|
|
#18+
Регулярное выражение (точнее - процедура обработки этого выражения) вернет вам массив строк. В вашем примере: как вы собираетесь отличить, какой именно </span> относится к <span id="id1">, а какой - к <span id="id2">. Вопрос поставлен не совсем понятно. Ознакомьтесь с regexp.ru ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.11.2007, 02:57 |
|
||
|
Регулярка. Поиск открывающих и соответствующих им закрывающих тегов.
|
|||
|---|---|---|---|
|
#18+
html-парсер на регекспах? Обсуждалось, в поиск. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.11.2007, 11:49 |
|
||
|
Регулярка. Поиск открывающих и соответствующих им закрывающих тегов.
|
|||
|---|---|---|---|
|
#18+
Парсер парсеру рознь - конкретные задачи то у каждого свои... Моя ситуация такая. Допустим есть такая строчка: <b>...</span>...<span>...</span>...<span>...</b> Необходимо её преобразовать в правильную с точки зрения браузера. Иными словами следует определить какие из тегов не имеют пары в пределах это сточки и перед ними поставить </b>, а после них - <b>. То есть должно получится: <b>...</b></span><b>...<span>...</span>...</b><span><b>...</b> Предлогалось сделать поиск не/парных тегов через стек. Проходимся по строчке и каждый тег записываем в стек, а если он является закрывающим, по отношению к предыдущему записанному тегу - убираем из стека последний элемент (тот самый, к которому только что нашли пару). В стеке также должен храниться индекс (позиция в строке) начала тега. В итоге после действия алгоритма можем получить такое состояние стека: 1) </span> 15 2) <span> 123 И мы уже будем знать, какие теги помещать в </b><b> Вопрос - как при поиске регуляркой узнать позицию вхождения шаблона? Как вам алгоритм, не слишком ли страшный? ;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2007, 14:03 |
|
||
|
Регулярка. Поиск открывающих и соответствующих им закрывающих тегов.
|
|||
|---|---|---|---|
|
#18+
юзай indexOf и будет тебе счастье. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2007, 14:27 |
|
||
|
Регулярка. Поиск открывающих и соответствующих им закрывающих тегов.
|
|||
|---|---|---|---|
|
#18+
Так этот метод регуляркой не ищет! Мне надо чтобы был массив вхождений и массив индексов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2007, 14:50 |
|
||
|
Регулярка. Поиск открывающих и соответствующих им закрывающих тегов.
|
|||
|---|---|---|---|
|
#18+
а тут и не нужно никаких регулярок ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2007, 15:03 |
|
||
|
Регулярка. Поиск открывающих и соответствующих им закрывающих тегов.
|
|||
|---|---|---|---|
|
#18+
Нужно, я просто объяснил наверное задачу плохо. Есть стока вида <b>...</b>, где внутри гарантированно нет еще других тегов жирности. Зато есть все возможные другие теги, не только <span>. И нужно выделить из них те, у к-рых нет пары. Итого из этого: <b>...</span>...</div>...<span>...</span>...<span>...</b> Получим это: <b>...</b></span><b>...</b></div><b>...<span>...</span>...<span>...</b> ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2007, 15:11 |
|
||
|
Регулярка. Поиск открывающих и соответствующих им закрывающих тегов.
|
|||
|---|---|---|---|
|
#18+
Сорри, на самом деле получим это, но сути не меняет, я думаю все уже понятно... <b>...</b></span><b>...</b></div><b>...</b><span><b>...</span>...<span>...</b> Последние 2 спана лежат внутри, в отл от остальных тегов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2007, 15:14 |
|
||
|
Регулярка. Поиск открывающих и соответствующих им закрывающих тегов.
|
|||
|---|---|---|---|
|
#18+
да с чего ты взял, что тут регулярки нужны? Не нужны они тут, indexOf юзай. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2007, 17:14 |
|
||
|
Регулярка. Поиск открывающих и соответствующих им закрывающих тегов.
|
|||
|---|---|---|---|
|
#18+
Ыыы.. а как я пойму на каких позициях в строчке находятся теги? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2007, 17:58 |
|
||
|
Регулярка. Поиск открывающих и соответствующих им закрывающих тегов.
|
|||
|---|---|---|---|
|
#18+
indexOf тебе и выдаёт позицию. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2007, 18:37 |
|
||
|
Регулярка. Поиск открывающих и соответствующих им закрывающих тегов.
|
|||
|---|---|---|---|
|
#18+
Позицию чего он вернет? Метод indexOf принимает в качестве аргумента строчку. То есть он ищет вхождение одной строчки в другую и выдаёт этот индекс. Как он выдаст индекс вхождения произвольного тега, к-рый можно задать только регулярным выражением ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2007, 18:49 |
|
||
|
Регулярка. Поиск открывающих и соответствующих им закрывающих тегов.
|
|||
|---|---|---|---|
|
#18+
Чего спорить то! пробуй RegExp.exec() в сочетании с RegExp.lastIndex - должно отлично получится если не получится то String.indexOf('<') и ручками ручками ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.11.2007, 09:57 |
|
||
|
|

start [/forum/topic.php?fid=22&msg=34977268&tid=1457277]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
172ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
53ms |
get tp. blocked users: |
2ms |
| others: | 11ms |
| total: | 286ms |

| 0 / 0 |

Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
... ля, ля, ля ...