Dada la string str de caracteres alfanuméricos, la tarea es verificar si la string es un número de tarjeta PAN (número de cuenta permanente) válido o no mediante el uso de expresiones regulares .
El número de Tarjeta PAN válido debe cumplir con las siguientes condiciones:
- Debe tener diez caracteres.
- Los primeros cinco caracteres deben ser alfabetos en mayúsculas.
- Los siguientes cuatro caracteres deben ser cualquier número del 0 al 9.
- El último (décimo) carácter debe ser cualquier alfabeto en mayúsculas.
- No debe contener espacios en blanco.
Ejemplos:
Entrada: str = “BNZAA2318J”
Salida: verdadero
Explicación:
La string dada cumple todas las condiciones mencionadas anteriormente.Entrada: str = “23ZAABN18J”
Salida: falso
Explicación:
La string dada no comienza con mayúsculas, por lo tanto, no es un número de tarjeta PAN válido.Entrada: str = “BNZAA2318JM”
Salida: falso
Explicación:
La string dada contiene once caracteres, por lo tanto, no es un número de tarjeta PAN válido.Entrada: str = “BNZAA23184”
Salida: verdadero
Explicación:
El último (décimo) carácter de esta string es un carácter numérico (0-9), por lo tanto, no es un número de tarjeta PAN válido.Entrada: str = “BNZAA 23184”
Salida: verdadero
Explicación:
La string dada contiene espacios en blanco, por lo tanto, no es un número de tarjeta PAN válido.
Enfoque: este problema se puede resolver utilizando la expresión regular.
- Consigue la cuerda.
- Cree una expresión regular para validar el número de la Tarjeta PAN como se menciona a continuación:
regex = "[A-Z]{5}[0-9]{4}[A-Z]{1}";
- Dónde:
- [AZ]{5} representa los primeros cinco alfabetos en mayúsculas que pueden ser de la A a la Z.
- [0-9]{4} representa los cuatro números que pueden ser 0-9.
- [AZ]{1} representa el alfabeto en mayúsculas que puede ser de la A a la Z.
- Haga coincidir la string dada con la expresión regular, en Java, esto se puede hacer usando Pattern.matcher() .
- Devuelve verdadero si la string coincide con la expresión regular dada; de lo contrario, devuelve falso.
A continuación se muestra la implementación del enfoque anterior:
Java
// Java program to validate the // PAN Card number using Regular Expression import java.util.regex.*; class GFG { // Function to validate the PAN Card number. public static boolean isValidPanCardNo(String panCardNo) { // Regex to check valid PAN Card number. String regex = "[A-Z]{5}[0-9]{4}[A-Z]{1}"; // Compile the ReGex Pattern p = Pattern.compile(regex); // If the PAN Card number // is empty return false if (panCardNo == null) { return false; } // Pattern class contains matcher() method // to find matching between given // PAN Card number using regular expression. Matcher m = p.matcher(panCardNo); // Return if the PAN Card number // matched the ReGex return m.matches(); } // Driver Code. public static void main(String args[]) { // Test Case 1: String str1 = "BNZAA2318J"; System.out.println(isValidPanCardNo(str1)); // Test Case 2: String str2 = "23ZAABN18J"; System.out.println(isValidPanCardNo(str2)); // Test Case 3: String str3 = "BNZAA2318JM"; System.out.println(isValidPanCardNo(str3)); // Test Case 4: String str4 = "BNZAA23184"; System.out.println(isValidPanCardNo(str4)); // Test Case 5: String str5 = "BNZAA 23184"; System.out.println(isValidPanCardNo(str5)); } }
Python3
# Python3 program to validate the # PAN Card number using Regular # Expression import re # Function to validate the # PAN Card number. def isValidPanCardNo(panCardNo): # Regex to check valid # PAN Card number regex = "[A-Z]{5}[0-9]{4}[A-Z]{1}" # Compile the ReGex p = re.compile(regex) # If the PAN Card number # is empty return false if(panCardNo == None): return False # Return if the PAN Card number # matched the ReGex if(re.search(p, panCardNo) and len(panCardNo) == 10): return True else: return False # Driver Code. # Test Case 1: str1 = "BNZAA2318J" print(isValidPanCardNo(str1)) # Test Case 2: str2 = "23ZAABN18J" print(isValidPanCardNo(str2)) # Test Case 3: str3 = "BNZAA2318JM" print(isValidPanCardNo(str3)) # Test Case 4: str4 = "BNZAA23184" print(isValidPanCardNo(str4)) # Test Case 5: str5 = "BNZAA 23184" print(isValidPanCardNo(str5)) # This code is contributed by avanitrachhadiya2155
C++
// C++ program to validate the // PAN Card number using Regular // Expression #include <iostream> #include <regex> using namespace std; // Function to validate the // PAN Card number. bool isValidPanCardNo(string panCardNo) { // Regex to check valid // PAN Card number. const regex pattern("[A-Z]{5}[0-9]{4}[A-Z]{1}"); // If the PAN Card number // is empty return false if (panCardNo.empty()) { return false; } // Return true if the PAN Card number // matched the ReGex if (regex_match(panCardNo, pattern)) { return true; } else { return false; } } // Driver Code int main() { // Test Case 1: string str1 = "BNZAA2318J"; cout << isValidPanCardNo(str1) << endl; // Test Case 2: string str2 = "23ZAABN18J"; cout << isValidPanCardNo(str2) << endl; // Test Case 3: string str3 = "BNZAA2318JM"; cout << isValidPanCardNo(str3) << endl; // Test Case 4: string str4 = "BNZAA23184"; cout << isValidPanCardNo(str4) << endl; // Test Case 5: string str5 = "BNZAA 23184"; cout << isValidPanCardNo(str5) << endl; return 0; } // This code is contributed by yuvraj_chandra
true false false false false
Publicación traducida automáticamente
Artículo escrito por prashant_srivastava y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA