Как с помощью boost пройти по нему и взять
все под-выражения (0-9, 0-9, a-z, d, . ) как отдельний string и самое главное
проверить что в данной позиции можеть быть только один символ
(например '.' или 'd')
Здравствуйте, 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 (на английском). Насколько помню, в ней есть ответ на ваш вопрос.
Здравствуйте, php-coder, Спасибо за линк но это не совсем то .
Мне нужно следующее. Допустим у меня есть выражение :
regex expression("([0-9])([0-9])([a-z])d\.");
как с помощью буста разбить expression на под-выражения, то есть
получить строки так: 0-9
0-9
a-z
d
.
(как бы диапазон значений)
Это мне нужно для того, чтобы например
юзер написал 12c, я посмотрел что дальше может быть только
один заданый символ и автоматом его доставил (в нашем выражении) 'd' и '.'
Но каким образом мне разбить expression так как он может
быть очень большим и заумным
Извините за сумбур, плохо знаю русский .
Заранее благодарен ...
Здравствуйте, perf13, Спасибо что оттолкнулись на помощь.
Мне нужно следующее. Допустим у меня есть выражение :
regex expression("([0-9])([0-9])([a-z])d\.");
как с помощью буста разбить expression на под-выражения, то есть
получить строки так: 0-9
0-9
a-z
d
.
(как бы диапазон значений)
Это мне нужно для того, чтобы например
юзер написал 12c, я посмотрел что дальше может быть только
один заданый символ и автоматом его доставил (в нашем выражении) 'd' и '.'
Но каким образом мне разбить expression так как он может
быть очень большим и заумным
Извините за сумбур, плохо знаю русский .
Заранее благодарен ...
Здравствуйте, 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
Разве это не то что вам нужно? Вырезает? Вырезает. Дальше уже можете делать с ним всё что вам заблагорассудится.