Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> RegEx и опциональные атрибуты? 
V
    Опции темы
unkis
  Дата 27.3.2007, 15:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 802
Регистрация: 8.9.2004

Репутация: нет
Всего: 1



Всем привет, у меня такой вопрос.

Можно ли как-нибудь описать регулярное выражение с опциоеальными атрибутами?

Под опциоеальным атрибутам я подразумеваю тот атрибут, который может быть а может и не быть.

Значит у меня есть вот такие вот строчки

Код

S1=STA#N=Studievдgen (Skogеs, Huddinge)#ID=8180#X=18148169#Y=59222130#RI=1|&V1=STA#N=Haninge centrum (pendeltеg) (Handen, Haninge)#ID=9730#X=18136582#Y=59167682#RI=1|&Z1=STA#N=Nacka strand (Sicklaцn, Nacka)#ID=4031#X=18160259#Y=59316346#RI=1|&RD

S1=STA#N=Studievдgen (Skogеs, Huddinge)#ID=8180#X=18148169#Y=59222130#RI=1|&Z1=STA#N=Nacka strand (Sicklaцn, Nacka)#ID=4031#X=18160259#Y=59316346#RI=1|&RD



разница между этими строками в том что в первой атрибут &V1 присутствует, а во второй строчки его нет.

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

S1......&V1.......&Z1.....&RD

точки это тот текст который мне нужен.
атрибут &V1 опциональный, может быть а может и не быть.

я составил выражение но оно не совсем корректно работает
Код

S\d*?=(.*?)[&V\d*?=(.*?&)]?Z\d*?=(.*?)&RD

при поиске с этим выражением, по первой строчки, первая группа даёт следующий результат
Код

STA#N=Studievдgen (Skogеs, Huddinge)#ID=8180#X=18148169#Y=59222130#RI=1|&V1=STA#N=Haninge centrum (pendeltеg) (Handen, Haninge)#ID=9730#X=18136582#Y=59167682#RI=1|

то есть атрибут &V1 тоже попадает в первую группу, хотя он должен определяться отдельной группой.

Что неправельно в моём выражении и как его подправить?




--------------------
www.unkis.com
PM MAIL WWW   Вверх
unkis
Дата 27.3.2007, 16:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 802
Регистрация: 8.9.2004

Репутация: нет
Всего: 1



Все ребята сам нашёл, вот так выглядит правильное выражение.
Код

S\d*?=(.*?)(&V\d*?=(.*?&))?Z\d*?=(.*?)&RD



--------------------
www.unkis.com
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
javastic
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0956 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.