Druid
|
|
1 | |
Вопрос по регулярным выражениям.02.04.2008, 21:09. Показов 758. Ответов 4
Метки нет (Все метки)
Допустим у меня есть строка (для удобства восприятия разобью ее на строчки, но на самом деле никаких символов переноса, и новой строки там нет). Тексты не содержат ключевых слов end и begin
'какой-то тескт0 begin какой-то текст1 end какой-то текст2 begin какой-то текст3 begin какой-то текст4 end какой-то текст5 begin какой-то текст6 end какой-то текст7 end какой-то текст8' Нужно: a) Выбрать текст внутри таких begin и end, в которых нет других begin и end (в данном примере это будут 'какой-то текст1', 'какой-то текст4 ', 'какой-то текст6' б) Получить текст из самых внешних begin-ов и end-ов (в данном примере это будут 'какой-то текст1', 'какой-то текст3beginкакой-тотекст4', 'какой-то текст6endкакой-то текст7' Помогите чем мажите!!! |
02.04.2008, 21:09 | |
Ответы с готовыми решениями:
4
Вопрос по регулярным выражениям. Вопрос по регулярным выражениям Вопрос по регулярным выражениям Вопрос по регулярным выражениям. |
0 / 0 / 1
Регистрация: 15.12.2007
Сообщений: 381
|
|
02.04.2008, 22:13 | 2 |
Ну коль регулярные выражения то 'Во сиди и слушай, он не желал ей зла'
По теории это делается примерно так: Создается таблица блоков и таблица идентификаторов Таблица блоков: Id as long -Без комментариев AbsPosBegin as long -Начало блока в тексте HierarchicalLevel as integer -Уровень иерархии ParentBlockId as long -Id родительского блока Таблица идентификаторов: ID as long -Без комментариев BlockId as long -Id родительского блока Value as string - Значение Затем начиная с начала текста заполняешь эти таблицы. Затем ищешь записи в таблице блоков на которые не ссылается не один блок. А по ним выбираешь нужное из таблицы идентификаторов. Задача б) решается тривиально. Это теория... Удачи. С уважением NickStaves
0
|
0 / 0 / 1
Регистрация: 15.12.2007
Сообщений: 381
|
|
02.04.2008, 22:14 | 3 |
А это ты сам решил компилятор писать или кто заставил?
0
|
Druid
|
|
03.04.2008, 00:44 | 4 |
Спасибо за столь полезную инфу, но я не это имел в виду. Я не собираюсь писать свой собственный парсер, а хочу воспользоватся уже написанным. Есть такая библиотека Microsoft VBScript Regular Expressions 5.5, которая реализует всю функциональность работы с регулярными выражениями на java-script или на perl.
Так вот, вопрос был, как составить это регулярное выражение, для достижения моей цели. P.S. Если этого не получится, придется реализовывать очередной велосипед. |
0 / 0 / 1
Регистрация: 15.12.2007
Сообщений: 381
|
|
03.04.2008, 11:50 | 5 |
Хм...
Perl, выбор разумный. Жаль только, что в нем я как в Китае. Sorry. Пока ничем не могу помочь. С уважением NickStaves
0
|
03.04.2008, 11:50 | |
03.04.2008, 11:50 | |
Помогаю со студенческими работами здесь
5
Вопрос по регулярным выражениям Вопрос по регулярным выражениям Вопрос по регулярным выражениям PCRE Поиск по регулярным выражениям Учебник по регулярным выражениям Документация по регулярным выражениям Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |