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

結論

如何使用Python正則表示式從文字中提取浮點數?

開啟你的職業生涯

完成課程獲得認證
列印頁面
© . All rights reserved.