| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets > Из строки выбрать только цифры с regexp |
| Автор: apv1989 14.7.2011, 10:53 |
| Здравствуйте, уважаемые. Кто имеет большой опыт в регулярках, помогите, пожалуйста. Нужно из строки с номером телефона, хранящемся в произвольном формате, выбрать только цифры, причем, если номер начинается с 846, то эти цифры не нужны (это не обязательное условие, без него тоже хорошо). Пример: 8-927-0-123-456 -> 9270123456 8(960)123-45-67 -> 9601234567 79170123456 -> 9170123456 +7-915-123-456-7 -> 9151234567 8-846-123-456-7 -> 1234567 123-456-7 -> 1234567 8101-555-55-55 -> 1015555555 и т.д. Спасибо. |
| Автор: borisbn 14.7.2011, 13:19 | ||
Если уж очень хочется RegExp'ом, то можно не "вытаскивать" цифры, а "выкинуть" всё остальное
|
| Автор: o6s 14.7.2011, 21:41 | ||
только Regexp можно проще
|
| Автор: apv1989 15.7.2011, 08:01 | ||||
| 2 borisbn Спасибо, точно так как я и делаю. Только первый регексп беру \D, а другие два вместе сляпываю.
{1,1} - избыточная запись. Можно просто {1} 2 o6s Спасибо за отклик. Я делаю так же. Оставляют регекспом \D только цифры и вторым регэкспом выкидываю все остальное,
но потом эта строка не хочет делать .toInt() .toUlong() и т.д. , хотя я реально вижу, что там только цифры. Спросил, потому что думал, может кто-нибудь подскажет так, чтобы тоже самое делалось одним регекспом) |