![]() |
|
Модераторы: Partizan, gambit |
![]()
|
|
| Pankon |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 739 Регистрация: 2.6.2005 Репутация: 3 Всего: 5 |
Есть строки примерно такого вида или подобные(с вложенными и не вложенными тегами <iif>):
Мне нужно получить набор строк:
Проблема - написать правильное регулярное выражение (неправильные я и сам уже перепробовал |
||||
|
|||||
| source777 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1878 Регистрация: 12.3.2007 Репутация: 4 Всего: 56 |
Да, задача действительно непростая, думаю одним регэкспом тут не обойтись...
Пока можешь попробовать хоть и не оптимальный, но вполне рабочий воркэраунд:
-------------------- Если бы программистам платили за то, чтобы убирать код из программы вместо того, чтобы добавлять его, программы были бы намного лучше © Николас Негропонте |
|||
|
||||
| marcusmae |
|
||||
![]() stravaganza ![]() ![]() Профиль Группа: Участник Сообщений: 874 Регистрация: 26.3.2006 Репутация: 22 Всего: 39 |
Pankon, я долго смотрел на Ваш пример, и, если правильно понял, то задача состоит в том, чтобы из размеченной строки последовательно извлечь нулевые (без тегов) и первые (заключённого в одну пару <lif>ов) по вложенности тексты. Правильно? Если так, то здесь имеет место быть задача о вложенных скобках. В отличие от классических автоматов, на регекспах эта задача решается, поскольку последние дополнительно вооружены групп-рекурсиями :
Результат :
Часть требуемого результата получена. Но выглядит сурово, правда? Это сообщение отредактировал(а) marcusmae - 24.2.2008, 03:15 -------------------- ἀπὸ μηχανῆς θεός |
||||
|
|||||
| Pankon |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 739 Регистрация: 2.6.2005 Репутация: 3 Всего: 5 |
||||
|
||||
![]()
|
| Прежде чем создать тему, посмотрите сюда: | |
|
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :) Так же не забывайте отмечать свой вопрос решенным, если он таковым является :) Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |