 |
regex |
 |
22.08.2002, 05:05
|
#1
|
The Reloaded
Join Date: 01 2002
Location: behind the flesh and gelatinе of soft dull eyes
Posts: 3,387
Rep Power: 5
|
regex
кто-нить юзал boost::regex библиотеку (автор - John Maddock)? такая проблема: regex_match, заполняет массив подвыражений не всеми подвыражениями из разбираемой строки, и в результате набирает туда столько элементов, сколько было в шаблоне выражения, а не в самом выражении (конкретнее, если я в шаблоне задаю "(abc)*" (найти подвыражения вида 'abc' в выражении '(abc)*'), то он находит только одно подвыражение (последнее). и соответственно кол-во подвыражений == 1, видимо из-за того, что в шаблоне выделено одно подвыражение). никто не знает, из-за чего это и как заставить за один раз собирать все подвыражения (можно сначала сделать regex_match все выражение, а потом - regex_search сколько будет возможно, но этот способ просто отвратителен - лишний проход по строке)?
|
|
|
22.08.2002, 06:13
|
#2
|
The Reloaded
Join Date: 01 2002
Location: behind the flesh and gelatinе of soft dull eyes
Posts: 3,387
Rep Power: 5
|
нет, видимо, такова суть выделения подвыражений. нет, чтобы этот доктор мудак (doctor Maddock) предоставил нормальный интерфейс! ну да ладно, хоть regex_split есть, с его помощью удается провернуть то, что надо
|
|
|
22.08.2002, 19:37
|
#3
|
ЙЦУКЕН
Join Date: 07 2002
Location: 0x68,0x69,0x72, 0x69,0x6e,0x67, 0x20,0x6e,0x6f, 0x77
Age: 55
Posts: 3,118
Rep Power: 0
|
кстати ...а поискать в интернете regexp.c слабо ?  )))
нормальная regexp библиотека ...
ее даже удается под виндовз скомпилить с минимальным прикладыванием напильника.
единствено что - когда будешь искать, обращай внимание на версии -- их по инету валяется 1000 и 0.5 штуки.
да . и к нему еще нужно поиметь .h файл
либо написать самому
|
|
|
23.08.2002, 01:03
|
#4
|
The Reloaded
Join Date: 01 2002
Location: behind the flesh and gelatinе of soft dull eyes
Posts: 3,387
Rep Power: 5
|
Quote:
Originally posted by nm:
кстати ...а поискать в интернете regexp.c слабо ? )))
нормальная regexp библиотека ...
|
и в чем ее преимущество перед упомянутой мной? интересует синтаксис шаблонов и возможности, открываемы им, а также api (я хочу все выяснить перед тем, как пускаться в поиски и вникание в документацию. кстати, мне уже порекомендовали кое-что - spirit, так что уже имеются материалы для вникания... но в моем случае грамматика простая, поэтому хотелось бы обойтись не такой тяжелой артиллерией)
|
|
|
23.08.2002, 16:15
|
#5
|
The Reloaded
Join Date: 01 2002
Location: behind the flesh and gelatinе of soft dull eyes
Posts: 3,387
Rep Power: 5
|
Quote:
Originally posted by nm:
кстати ...а поискать в интернете regexp.c слабо ? )))
|
кстати, если это деяния некоего спенсера, то я вчера скатал, посмотрел слегка... честно говоря, нет желания вставлять в свой код си-фрагменты, поэтому пока буду искать другие пути...
|
|
|
24.08.2002, 05:09
|
#6
|
The Reloaded
Join Date: 01 2002
Location: behind the flesh and gelatinе of soft dull eyes
Posts: 3,387
Rep Power: 5
|
м-да... в который раз приходится самому находить решение  итак, regex_match так и не согласился сделать что от него требовалось. и тогда я обратился к regex_split. вначале и с ней не получалось - она матчила даже если совпадала внутренняя подстрока, и я думал, придется делать двойной проход - сначала убедиться regex_match-ем, что совпадает вся строка целиком, а потом выделять подвыражения regex_split-ом. сегодня я додумался окружить шаблон символами начала и конца строки, и нужда в regex_match отпала... да здравствую я!  однако, если кто-то искушенный в этих делах видит в этом решении прокол, прошу сообшить. вроде на простых примерах срабатывает, и при выделении подвыражений не допускает между ними лишних символов...
|
|
|
24.08.2002, 05:40
|
#7
|
The Reloaded
Join Date: 01 2002
Location: behind the flesh and gelatinе of soft dull eyes
Posts: 3,387
Rep Power: 5
|
хотя все равно сукс - теперь не могу (по крайней мере легко) следить за номерами прочитанных строк и находить позицию ошибки...
|
|
|
All times are GMT. The time now is 08:04. |
|
|