如何使用正则表达式检查Aadhaar号码是否有效?
简介
在本C++ 教程中,我们将使用正则表达式检查输入的Aadhaar号码是否有效。正则表达式或regex用于字符串中的模式匹配或字符串搜索算法。其功能在<regex>头文件中定义。它与regex关键字一起使用,后跟一个变量。印度公民被签发Aadhaar号码,这是一个唯一的身份号码。它是一个12位的唯一号码,并且没有两个人拥有相同的AADHAAR号码。
语法
regex regular_expression_patternname return regex_match(value, regular_expression_patternname);
在本教程中,为了检查Aadhaar号码的有效性,我们考虑Aadhaar号码的以下规则:
Aadhaar号码应为12位数字。
每4个数字后应有一个空格。
Aadhaar号码不能以0或1或特殊字符开头。
Aadhaar号码不能包含任何字母或特殊字符。
Aadhaar号码只能包含数字。
示例1
Input = String = "1243 5670 0784" Output = Input number is a valid aadhar number
解释
在上面的输入字符串中,输入字符串遵循Aadhaar卡的所有列出规则。因此,它是一个有效的Aadhaar号码。
示例2
Input = String = "1265 A093 5438" Output = The input string is invalid aadhar number
解释
在上面的输入字符串中,含有一个字母,而Aadhaar卡号码不包含任何字母。此号码不是有效的Aadhaar号码。
示例3
Input = String = "0987 2345 6453" Output = The input number is invalid Aadhar number
解释
在上面的输入字符串中,它以0开头,而Aadhaar卡号码不能以0开头。此号码不是有效的Aadhaar号码。
算法
初始化一个12位数字的字符串。
定义遵循有效Aadhaar号码所有规则的正则表达式。
正则表达式如下所示: ("^[2-9][0-9]{3}\s[0-9]{4}\s[0-9]{4}$")
这里:
^ 表示字符串的开头
[2-9] 是字符串的第一个数字。
[0-9]{3} 是字符串接下来的3位数字。
\s 表示空格。
[0-9]{3} 是字符串接下来的3位数字。
\s 表示空格。
[0-9]{4} 表示字符串接下来的4位数字。
$ 表示字符串的结尾。
将输入字符串与正则表达式匹配。
打印字符串匹配的结果。
示例1
#include <iostream>
#include <regex>
using namespace std;
//user-defined function for checking the input string
bool isAadhaarValid(const string& aadhaarVar) {
// Regular expression defining the rules of valid aadhar number
regex aadharPattern("^[2-9][0-9]{3} [0-9]{4} [0-9]{4}$");
return regex_match(aadhaarVar, aadharPattern);
}
int main() {
// initialize the input string
string aadhaarVar = "0175 9834 6012";
//conditional statement calling function
if (isAadhaarValid(aadhaarVar)){
cout << aadhaarVar << " is Valid Aadhaar number." <<endl;
} else {
cout << aadhaarVar <<" is Invalid Aadhaar number." << endl;
}
return 0;
}
我们通过定义包含Aadhaar号码所有规则的正则表达式来实现本教程的问题陈述。在这种情况下,正则表达式与输入字符串匹配。在正则表达式中使用空格来表示Aadhaar号码中的空格。使用条件语句来打印结果。
0175 9834 6012 is Invalid Aadhaar number
输出
示例2
#include <iostream>
#include <regex>
using namespace std;
// user defined function for checking the input string number
bool isAadhaarNumberValid(string strNum) {
// regular expression defining rules for the valid Aadhar number
const regex stringPattern("^[2-9]{1}[0-9]{3}\s[0-9]{4}\s[0-9]{4}$");
// When the input string is empty, return false
if (strNum.empty()){
return false;
}
//conditional statement for checking the string matching
if(regex_match(strNum, stringPattern)){
return true;
} else {
return false;
}
}
// Code controller
int main(){
// string number 1
string strNum1 = "1265 A093 5438";
//calling function
cout << isAadhaarNumberValid(strNum1) << endl;
// string number 2
string strNum2 = "2435 5670 0784";
cout << isAadhaarNumberValid(strNum2) << endl;
// string number 3
string strNum3 = "0987 2345 6453";
cout << isAadhaarNumberValid(strNum3) << endl;
// string number 4
string strNum4 = "2675 23476 23 0";
cout << isAadhaarNumberValid(strNum4) << endl;
// string number 5
string strNum5 = "2134569847";
cout << isAadhaarNumberValid(strNum5) << endl;
return 0;
}
我们通过定义包含Aadhaar号码所有规则的正则表达式来实现本教程的问题陈述。在这种情况下,正则表达式与输入字符串匹配。在正则表达式中使用空格来表示Aadhaar号码中的空格。使用条件语句来打印结果。
0 1 0 0 0
我们通过C++实现检查输入字符串是否为有效Aadhaar号码的任务。为Aadhaar号码规则定义正则表达式。对于Aadhaar号码中的空格,使用特殊符号“\s”。使用多个字符串来检查它们是否为有效的Aadhaar号码。
结论
打印页面
数据结构
网络
关系数据库管理系统 (RDBMS)
操作系统
Java
iOS
HTML
CSS
Android
Python
C语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP