Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: Общие вопросы > Регулярные вырожения. Проблема с групами?


Автор: unkis 18.3.2007, 01:08
Ребята, объясните пожалуйста.

есть такое регулярное вырожения

Оценки.*?embedded>.*?>(.*)|Оценки.*?embedded>(.*)
которое состоит из двух частей:
1) Оценки.*?embedded>.*?>(.*)
или
2)Оценки.*?embedded>(.*)
то есть поиск производится либо по первой части, либо по второй.

теперь у меня такая ситуация предположим, что сработала вторая часть.
Оценки.*?embedded>(.*)

то почему группа в этой части имеет номер 2, а не один?

ведь в процессе поиска я не могу знать заранее какая часть сработае и следовательно выставить правильную группу.

Как быть? 

Автор: s8e8r8g8e 18.3.2007, 10:32
а в чём проблема то smile 
ну будет 1я группа null а вторая со значением или наоборот, это же можно обработать

Автор: nornad 18.3.2007, 23:11
Цитата(unkis @  18.3.2007,  04:08 Найти цитируемый пост)
почему группа в этой части имеет номер 2, а не один?

Потому что открывающая скобка этой группы идёт второй по счёту (если считать слева направо).  smile 
Цитата(unkis @  18.3.2007,  04:08 Найти цитируемый пост)
ведь в процессе поиска я не могу знать заранее какая часть сработае и следовательно выставить правильную группу.
Как быть?

Объясни, что ты хочешь сделать и тогда уже подумаем вместе - а так телепатией пока что владеют немногие.

Добавлено @ 23:19 
Кстати, пришло в голову, что тебе вполне может помочь вот такое решение (телепатии пока не научился - просто заметил smile ):
Код

Оценки.*?embedded(>.*?>|>)(.*)

Искомая группа всегда будет иметь номер 2, да и само выражение уменьшается в длине.

Автор: unkis 19.3.2007, 11:19
Цитата(nornad @  18.3.2007,  21:11 Найти цитируемый пост)
Кстати, пришло в голову, что тебе вполне может помочь вот такое решение (телепатии пока не научился - просто заметил smile ):
Выделить всёБез подсветки
1:
    
Оценки.*?embedded(>.*?>|>)(.*)

Искомая группа всегда будет иметь номер 2, да и само выражение уменьшается в длине. 


спасибо это как раз то что нужно

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)