Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.79/19: Рейтинг темы: голосов - 19, средняя оценка - 4.79
1 / 1 / 0
Регистрация: 25.02.2011
Сообщений: 29

Регулярные выражения: проверить, является ли введенное значение телефонным номером с кодом

15.03.2011, 18:05. Показов 3780. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем доброго времени суток!

Изучаю регулярные выражения, подключил к Билдеру модуль RegExpr.pas.
Задание в следующем: необходимо проверить, является ли введенное значение телефонным номером с кодом или нет.

Вот код:

C++
1
2
3
4
5
6
7
TRegExpr *k;
k = new TRegExpr;
k->Expression = "^(\+\d *)?(\(\d+\) *)?\d+(-\d*)*$";
if ((k->Exec(Edit2->Text)==true))
ShowMessage(k->Match[0] + "Правильный номер с кодом");
else if (k->Exec(Edit2->Text)==False)
ShowMessage("Неправильный номер с кодом");
Проблема в самом выражении "^(\+\d *)?(\(\d+\) *)?\d+(-\d*)*$"
при попытке выполнить данный код выдается сообщение об ошибке, содержащее следующий код:

Code
1
'TRegExpr (comp):?+*{Follows Nothing (pos 3)}'
Помогите разобраться пожалуйста.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
15.03.2011, 18:05
Ответы с готовыми решениями:

Регулярные выражения. Проверить, является ли домен белорусским
Вводим домен, типа: www.vk.com. Проверить, является ли домен белорусским

Регулярные выражения. Проверить является ли строка идентификатором
using System; using System.Text.RegularExpressions; namespace ConsoleApp2 { class Program { static void...

Регулярные выражения: проверить, является ли последовательность символов IP адресом
Проверить, или есть последовательность символов IP адресом.

10
145 / 100 / 6
Регистрация: 11.03.2010
Сообщений: 477
15.03.2011, 20:00
могу предположить что нехватает экранирующих слешей.
C++
1
2
3
4
5
6
7
TRegExpr *k;
k = new TRegExpr;
k->Expression = "^(\\+\\d *)?(\\(\\d+\\) *)?\\d+(-\\d*)*$";
if ((k->Exec(Edit2->Text)==true))
ShowMessage(k->Match[0] + "Правильный номер с кодом");
else if (k->Exec(Edit2->Text)==False)
ShowMessage("Неправильный номер с кодом");
в таком виде у меня ошибок нету.
1
1 / 1 / 0
Регистрация: 25.02.2011
Сообщений: 29
15.03.2011, 20:04  [ТС]
koldun, спасибо Вам, в таком виде ошибок действительно нет)
0
 Аватар для __bool
288 / 229 / 27
Регистрация: 13.06.2010
Сообщений: 744
21.09.2011, 21:18
Подскажите пожалуйста как получить str1 = "F:\Seek And Destroy.mp3" и str2 = "Metallica"
из этой строки?

"1|F:\Seek And Destroy.mp3|Metallica|"

Добавлено через 1 час 38 минут
Рационально парсить таким образом файлы плейлиста ? (.plc)
0
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
21.09.2011, 21:26
не знаю, как регулярные выражения, а ExtractStrings и ее Delimiters в подобном случае работают великолепно
1
 Аватар для xAtom
935 / 760 / 299
Регистрация: 09.12.2010
Сообщений: 1,346
Записей в блоге: 1
22.09.2011, 02:03
Цитата Сообщение от __bool Посмотреть сообщение
Подскажите пожалуйста как получить str1 = "F:\Seek And Destroy.mp3" и str2 = "Metallica"
из этой строки?
Это очень просто, вот держи.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <stdio.h>
#include <string.h>
 
int  main(void) {
   // твоя строка
   char str[] = "1|F:\\Seek And Destroy.mp3|Metallica|";
 
   char str1[255] = { 0 };  // буф- путь к файлу
   char str2[64] = { 0 };   //  буф- название группы
  
   sscanf(str, "%*[^|]|%[^|]|%[^|]|", str1, str2);
 
   printf("str1 = %s\nstr2 = %s\n", str1, str2);
 
   getchar();
   return 0;
}
2
 Аватар для __bool
288 / 229 / 27
Регистрация: 13.06.2010
Сообщений: 744
22.09.2011, 16:43
Цитата Сообщение от LK Посмотреть сообщение
не знаю, как регулярные выражения, а ExtractStrings и ее Delimiters в подобном случае работают великолепно
Если не трудно, приведи пример с моей строкой: нужно вытащить то что между "|"
1|F:\Seek And Destroy.mp3|Metallica|

Добавлено через 47 минут
Все, разобрался..)
0
0 / 0 / 0
Регистрация: 21.08.2013
Сообщений: 11
13.07.2014, 00:36
Ребята, помогите с той же фигней. Вырезаю ссылку с сайта, в программе проверки выражений нормально, при запуске программы - не видит пробел.
Ссылка вида:
HTML5
1
href="https://www.com/s/wzrjjsdvcankhddw/#dxqtpbxiozlqqkmo" target
Нужно оставлять только то, что в кавычках -
HTML5
1
"https://www.com/s/wzrjjsdvcankhddw/#dxqtpbxiozlqqkmo"
- можно вместе с кавычками.
Вот так пробовал - "https://www.com.*" - не находит
0
Эксперт С++
 Аватар для Avazart
8489 / 6156 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
13.07.2014, 00:43
Code
1
href="(https://www\\.com.*?)"
Добавлено через 4 минуты
http://regexpr.ru/cheatsheet/
http://regexpr.ru/?pattern=%2F... %22+target
1
191 / 52 / 19
Регистрация: 18.02.2013
Сообщений: 508
Записей в блоге: 9
13.07.2014, 21:06
C++
1
href=\\"https://(.*?)\\"
Находит сам домен с темой(без https), то есть найдет https://www.com/s/wzrjjsdvcank... xiozlqqkmo
0
74 / 54 / 17
Регистрация: 10.07.2014
Сообщений: 329
15.07.2014, 01:19
Цитата Сообщение от Gdasar Посмотреть сообщение
C++
1
href=\\"https://(.*?)\\"
Находит сам домен с темой(без https), то есть найдет https://www.com/s/wzrjjsdvcank... xiozlqqkmo
Тогда написать так:
C++
1
href=\\"(https://.*?)\\"
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
15.07.2014, 01:19
Помогаю со студенческими работами здесь

Проверить, является ли введенное значение числом
int tmp; cout&lt;&lt;&quot;vvedite chislo&quot;; cin&gt;&gt;tmp; как проверить является ли введенное значени числом?, а то если я ввожу букву то у меня...

Как проверить, является ли введенное значение числом?
В поле Edit нужно ввести число. Как проверить, не ввел ли туда пользователь недопустимый символ (букву)?

Проверить, является ли введенное значение числом или нет
Здрасти. как проверить число на то, является ли оно им или нет. Пробовал с помощью cin.good(), и с ней все проверяется кроме одного: если...

Регулярные выражения в Delphi: как проверить, является ли строка допустимым именем узла xml?
Доброго времени суток! Нужно определить корректность имени узла XML, вводимого пользователем. Здесь нашел регулярное выражение для...

Проверить, является ли введенное число является решением уравнения (составить блок-схему)
Составить блок-схему Проверить, является ли введенное число является решением уравнения {ax}^{4}+{bx}^{2}+cx=d ^ - степень ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20%
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если. . .
Доступность команды формы по условию
Maks 07.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: сделать доступной кнопку (команда формы "ЗавершитьСписание") при. . .
Уведомление о неверно выбранном значении справочника
Maks 06.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "НарядПутевка", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если в документе выбран неверный склад. . .
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru