Go Back   Armenian Knowledge Base > Technical sections > Languages, Compilers, Interpreters

Reply
 
Thread Tools

regex
Old 22.08.2002, 05:05   #1
The Reloaded
 
Aram Hambardzumyan's Avatar
 
Join Date: 01 2002
Location: behind the flesh and gelatinе of soft dull eyes
Posts: 3,387
Rep Power: 5
Post regex

кто-нить юзал boost::regex библиотеку (автор - John Maddock)? такая проблема: regex_match, заполняет массив подвыражений не всеми подвыражениями из разбираемой строки, и в результате набирает туда столько элементов, сколько было в шаблоне выражения, а не в самом выражении (конкретнее, если я в шаблоне задаю "(abc)*" (найти подвыражения вида 'abc' в выражении '(abc)*'), то он находит только одно подвыражение (последнее). и соответственно кол-во подвыражений == 1, видимо из-за того, что в шаблоне выделено одно подвыражение). никто не знает, из-за чего это и как заставить за один раз собирать все подвыражения (можно сначала сделать regex_match все выражение, а потом - regex_search сколько будет возможно, но этот способ просто отвратителен - лишний проход по строке)?

Old 22.08.2002, 06:13   #2
The Reloaded
 
Aram Hambardzumyan's Avatar
 
Join Date: 01 2002
Location: behind the flesh and gelatinе of soft dull eyes
Posts: 3,387
Rep Power: 5
Post

нет, видимо, такова суть выделения подвыражений. нет, чтобы этот доктор мудак (doctor Maddock) предоставил нормальный интерфейс! ну да ладно, хоть regex_split есть, с его помощью удается провернуть то, что надо

Old 22.08.2002, 19:37   #3
nm
ЙЦУКЕН
 
Join Date: 07 2002
Location: 0x68,0x69,0x72, 0x69,0x6e,0x67, 0x20,0x6e,0x6f, 0x77
Age: 55
Posts: 3,118
Rep Power: 0
Post

кстати ...а поискать в интернете regexp.c слабо ? )))
нормальная regexp библиотека ...

ее даже удается под виндовз скомпилить с минимальным прикладыванием напильника.

единствено что - когда будешь искать, обращай внимание на версии -- их по инету валяется 1000 и 0.5 штуки.

да . и к нему еще нужно поиметь .h файл
либо написать самому

Old 23.08.2002, 01:03   #4
The Reloaded
 
Aram Hambardzumyan's Avatar
 
Join Date: 01 2002
Location: behind the flesh and gelatinе of soft dull eyes
Posts: 3,387
Rep Power: 5
Post

Quote:
Originally posted by nm:
кстати ...а поискать в интернете regexp.c слабо ? )))
нормальная regexp библиотека ...
и в чем ее преимущество перед упомянутой мной? интересует синтаксис шаблонов и возможности, открываемы им, а также api (я хочу все выяснить перед тем, как пускаться в поиски и вникание в документацию. кстати, мне уже порекомендовали кое-что - spirit, так что уже имеются материалы для вникания... но в моем случае грамматика простая, поэтому хотелось бы обойтись не такой тяжелой артиллерией)

Old 23.08.2002, 16:15   #5
The Reloaded
 
Aram Hambardzumyan's Avatar
 
Join Date: 01 2002
Location: behind the flesh and gelatinе of soft dull eyes
Posts: 3,387
Rep Power: 5
Post

Quote:
Originally posted by nm:
кстати ...а поискать в интернете regexp.c слабо ? )))
кстати, если это деяния некоего спенсера, то я вчера скатал, посмотрел слегка... честно говоря, нет желания вставлять в свой код си-фрагменты, поэтому пока буду искать другие пути...

Old 24.08.2002, 05:09   #6
The Reloaded
 
Aram Hambardzumyan's Avatar
 
Join Date: 01 2002
Location: behind the flesh and gelatinе of soft dull eyes
Posts: 3,387
Rep Power: 5
Post

м-да... в который раз приходится самому находить решение итак, regex_match так и не согласился сделать что от него требовалось. и тогда я обратился к regex_split. вначале и с ней не получалось - она матчила даже если совпадала внутренняя подстрока, и я думал, придется делать двойной проход - сначала убедиться regex_match-ем, что совпадает вся строка целиком, а потом выделять подвыражения regex_split-ом. сегодня я додумался окружить шаблон символами начала и конца строки, и нужда в regex_match отпала... да здравствую я! однако, если кто-то искушенный в этих делах видит в этом решении прокол, прошу сообшить. вроде на простых примерах срабатывает, и при выделении подвыражений не допускает между ними лишних символов...

Old 24.08.2002, 05:40   #7
The Reloaded
 
Aram Hambardzumyan's Avatar
 
Join Date: 01 2002
Location: behind the flesh and gelatinе of soft dull eyes
Posts: 3,387
Rep Power: 5
Post

хотя все равно сукс - теперь не могу (по крайней мере легко) следить за номерами прочитанных строк и находить позицию ошибки...
Reply




Реклама:
реклама
Buy text link .

All times are GMT. The time now is 08:04.
Top

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.