Помогите написать регулярку для номера телефона
Друзья, нужна помощь в написании регулярного выражения.
Есть задача - QLineEdit, в который нужно закинуть валидатор с регуляркой для номера телефона вида 8(900)000-00-00.
Нашел несколько вариантов в интернете, но все они не работают.
Вылетает вот такая ошибка :
QRegularExpressionPrivate::doMatch(): called on an invalid QRegularExpression object (pattern is '\A(?:([+]?[7|8][s-(]?[9][0-9]{2}[s-)]?)?([d]{3})[s-]?([d]{2})[s-]?([d]{2}))\z')
Заранее спасибо за помощь
Ответы (1 шт):
Автор решения: Amgarak
→ Ссылка
Что-то в этом роде?
#include <iostream>
#include <regex>
using namespace std;
int main() {
string phoneRegexStr = R"(\+?8\(\d{3}\)\d{3}-\d{2}-\d{2})";
regex phoneRegex(phoneRegexStr);
string phoneNumber = "8(123)456-78-90"; //or +8(123)456-78-90
if (regex_match(phoneNumber, phoneRegex)) {
cout << "The phone number '" << phoneNumber << "' is valid." << endl;
}
else {
cout << "The phone number '" << phoneNumber << "' is invalid." << endl;
}
return 0;
}