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

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

15.03.2011, 18:05. Показов 3752. Ответов 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
8488 / 6155 / 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
Ответ Создать тему
Новые блоги и статьи
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
Влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru