如何使用正则表达式检查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号码。
结论
打印页面