如何使用正則表示式檢查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