задачка по boost::regex
От: sanjaa  
Дата: 26.05.08 13:27
Оценка:
Здраствуйте.

У меня эсть выражение вида [0-9][0-9][a-z][d]\.

Как с помощью boost пройти по нему и взять
все под-выражения (0-9, 0-9, a-z, d, . ) как отдельний string и самое главное
проверить что в данной позиции можеть быть только один символ
(например '.' или 'd')

Please, help
boost regex c++
Re: задачка по boost::regex
От: php-coder Чехия http://slava-semushin.blogspot.com
Дата: 26.05.08 13:43
Оценка:
Здравствуйте, sanjaa, Вы писали:

S>Здраствуйте.


S>У меня эсть выражение вида [0-9][0-9][a-z][d]\.


S>Как с помощью boost пройти по нему и взять

S>все под-выражения (0-9, 0-9, a-z, d, . ) как отдельний string и самое главное
S>проверить что в данной позиции можеть быть только один символ
S>(например '.' или 'd')

К сожалению, я не очень понял задание, поэтому могу помочь разве что ссылкой на доку: http://www.onlamp.com/lpt/a/6535 (на английском). Насколько помню, в ней есть ответ на ваш вопрос.
Re: задачка по boost::regex
От: perf13  
Дата: 26.05.08 15:31
Оценка:
Здравствуйте, sanjaa, Вы писали:

S>Здраствуйте.


S>У меня эсть выражение вида [0-9][0-9][a-z][d]\.


не понял о чем конкретно речь, может имеется в виду это:
([0-9])([0-9])([a-z])d\.
потом из match-груп получить значения
Re[2]: задачка по boost::regex
От: sanjaa  
Дата: 26.05.08 18:16
Оценка:
Здравствуйте, php-coder, Спасибо за линк но это не совсем то .

Мне нужно следующее. Допустим у меня есть выражение :

regex expression("([0-9])([0-9])([a-z])d\.");

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

a-z
d
.
(как бы диапазон значений)
Это мне нужно для того, чтобы например
юзер написал 12c, я посмотрел что дальше может быть только
один заданый символ и автоматом его доставил (в нашем выражении) 'd' и '.'
Но каким образом мне разбить expression так как он может
быть очень большим и заумным

Извините за сумбур, плохо знаю русский .
Заранее благодарен ...
Re[2]: задачка по boost::regex
От: sanjaa  
Дата: 26.05.08 18:19
Оценка:
Здравствуйте, perf13, Спасибо что оттолкнулись на помощь.

Мне нужно следующее. Допустим у меня есть выражение :

regex expression("([0-9])([0-9])([a-z])d\.");

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

a-z
d
.
(как бы диапазон значений)
Это мне нужно для того, чтобы например
юзер написал 12c, я посмотрел что дальше может быть только
один заданый символ и автоматом его доставил (в нашем выражении) 'd' и '.'
Но каким образом мне разбить expression так как он может
быть очень большим и заумным

Извините за сумбур, плохо знаю русский .
Заранее благодарен ...
Re[3]: задачка по boost::regex
От: php-coder Чехия http://slava-semushin.blogspot.com
Дата: 27.05.08 10:25
Оценка:
Здравствуйте, sanjaa, Вы писали:

S>Здравствуйте, php-coder, Спасибо за линк но это не совсем то .


Либо я вас совсем неправильно понял, либо вы не углубились в чтение текста по ссылке.

S>Мне нужно следующее. Допустим у меня есть выражение :

S>regex expression("([0-9])([0-9])([a-z])d\.");
S>как с помощью буста разбить expression на под-выражения, то есть
S>получить строки так:
S>0-9
S>0-9
S>a-z
S>d
S>.
S>(как бы диапазон значений)

Заходим, по ссылке, что я давал выше. Находим в пункте Parsing пример номер 2. Сохраняем его, компилируем. Запускаем:

[c0der@xxx ~]$ ./regex_example
Expression: (\d)(\d)([a-z])d\.
String: 12c
The regexp "(\d)(\d)([a-z])d\." does not match "12c"
Expression: (\d)(\d)([a-z])d?\.?
String: 12c
matches[1] = 1
matches[2] = 2
matches[3] = c
Expression: (\d)(\d)([a-z])(d?)(\.?)
String: 12ad.
matches[1] = 1
matches[2] = 2
matches[3] = a
matches[4] = d
matches[5] = .
Expression: quit


Разве это не то что вам нужно? Вырезает? Вырезает. Дальше уже можете делать с ним всё что вам заблагорассудится.
Re[4]: задачка по boost::regex
От: sanjaa  
Дата: 28.05.08 17:33
Оценка:
Спасибо php-coder за дельний ответ....
Неделю не сплю... сам не знаю чего хочу, перепрограмировался одним словом
Re[5]: задачка по boost::regex
От: php-coder Чехия http://slava-semushin.blogspot.com
Дата: 28.05.08 17:40
Оценка: 1 (1)
Здравствуйте, sanjaa, Вы писали:

S>Спасибо php-coder за дельний ответ....


Как говорят здесь, на сайте, "для спасибо отдельные кнопочки есть"
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.