Cómo validar el código pin de la India usando la expresión regular

Dada una string de números positivos que van del 0 al 9 , la tarea consiste en comprobar si el número es un código pin válido o no mediante el uso de una expresión regular .

El código PIN válido de la India debe cumplir las siguientes condiciones. 

  1. Puede tener solo seis dígitos.
  2. No debe comenzar con cero.
  3. El primer dígito del código PIN debe ser del 1 al 9.
  4. Los siguientes cinco dígitos del código pin pueden variar de 0 a 9.
  5. Debe permitir solo un espacio en blanco, pero después de tres dígitos, aunque esto es opcional.

Ejemplos:  

Entrada: num = “132103” 
Salida: verdadero 
Explicación: 
El número dado satisface todas las condiciones mencionadas anteriormente.

Entrada: num = “201 305” 
Salida: verdadero 
Explicación: 
El número dado satisface todas las condiciones mencionadas anteriormente.

Entrada: num = «014205» 
Salida: falso 
Explicación: 
El número dado comienza con cero, por lo tanto, no es un código PIN válido de la India.

Entrada: num = «1473598» 
Salida: falso 
Explicación: 
El número dado contiene siete dígitos, por lo tanto, no es un código PIN válido de la India.  

Enfoque: este problema se puede utilizar mediante el uso de expresiones regulares.  

1. Obtenga el número.

2. Cree una expresión regular para validar el código pin de India como se menciona a continuación: 

 
regex = "^[1-9]{1}[0-9]{2}\\s{0, 1}[0-9]{3}$";

Dónde: 

  • ^ representa el comienzo del número.
  • [1-9]{1} representa el dígito inicial en el código pin que va del 1 al 9.
  • [0-9]{2} representa los siguientes dos dígitos en el código pin que van del 0 al 9.
  • \\s{0, 1} representa el espacio en blanco en el código PIN que puede aparecer una vez o nunca.
  • [0-9]{3} representa los últimos tres dígitos del código pin que van del 0 al 9.
  • $ representa el final del número.

3. Haga coincidir el número dado con la expresión regular, en Java, esto se puede hacer usando Pattern.matcher() .

4. Devuelve verdadero si el número coincide con la expresión regular dada, de lo contrario, devuelve falso.

A continuación se muestra la implementación del enfoque anterior.  

C++

// C++ program to validate the pin code
// of India using Regular Expression.
#include <bits/stdc++.h>
using namespace std;
 
// Function to validate the pin code of India.
bool isValidPinCode(string pinCode)
{
     
    // Regex to check valid pin code of India.
    const regex pattern("^[1-9]{1}[0-9]{2}\\s{0,1}[0-9]{3}$");
 
    // If the pin code is empty
    // return false
    if (pinCode.empty())
    {
        return false;
    }
 
    // Return true if the pin code
    // matched the ReGex
    if (regex_match(pinCode, pattern))
    {
        return true;
    }
    else
    {
        return false;
    }
}
 
void print(bool n)
{
    if (n == 0)
    {
        cout << "False" << endl;
    }
    else
    {
        cout << "True" << endl;
    }
}
 
// Driver Code.
int main()
{
     
    // Test Case 1:
    string num1 = "132103";
    cout << num1 + ": ";
    print(isValidPinCode(num1));
 
    // Test Case 2:
    string num2 = "201 305";
    cout << num2 + ": ";
    print(isValidPinCode(num2));
 
    // Test Case 3:
    string num3 = "014205";
    cout << num3 + ": ";
    print(isValidPinCode(num3));
 
    // Test Case 4:
    string num4 = "1473598";
    cout << num4 + ": ";
    print(isValidPinCode(num4));
 
    return 0;
}
 
// This code is contributed by nirajgusain5

Java

// Java program to validate the pin code
// of India using Regular Expression.
 
import java.util.regex.*;
 
class GFG {
 
    // Function to validate the pin code of India.
    public static boolean isValidPinCode(String pinCode)
    {
 
        // Regex to check valid pin code of India.
        String regex
            = "^[1-9]{1}[0-9]{2}\\s{0,1}[0-9]{3}$";
 
        // Compile the ReGex
        Pattern p = Pattern.compile(regex);
 
        // If the pin code is empty
        // return false
        if (pinCode == null) {
            return false;
        }
 
        // Pattern class contains matcher() method
        // to find matching between given pin code
        // and regular expression.
        Matcher m = p.matcher(pinCode);
 
        // Return if the pin code
        // matched the ReGex
        return m.matches();
    }
 
    // Driver Code.
    public static void main(String args[])
    {
 
        // Test Case 1:
        String num1 = "132103";
        System.out.println(
            num1 + ": "
            + isValidPinCode(num1));
 
        // Test Case 2:
        String num2 = "201 305";
        System.out.println(
            num2 + ": "
            + isValidPinCode(num2));
 
        // Test Case 3:
        String num3 = "014205";
        System.out.println(
            num3 + ": "
            + isValidPinCode(num3));
 
        // Test Case 4:
        String num4 = "1473598";
        System.out.println(
            num4 + ": "
            + isValidPinCode(num4));
    }
}

Python3

# Python3 program to validate the 
# pin code of India using Regular
# Expression.
import re
 
# Function to validate the pin code
# of India.
def isValidPinCode(pinCode):
     
    # Regex to check valid pin code
    # of India.
    regex = "^[1-9]{1}[0-9]{2}\\s{0,1}[0-9]{3}$";
 
    # Compile the ReGex
    p = re.compile(regex);
     
    # If the pin code is empty
    # return false
    if (pinCode == ''):
        return False;
         
    # Pattern class contains matcher() method
    # to find matching between given pin code
    # and regular expression.
    m = re.match(p, pinCode);
     
    # Return True if the pin code
    # matched the ReGex else False
    if m is None:
        return False
    else:
        return True
 
# Driver code
if __name__ == "__main__":
     
    # Test case 1
    num1 = "132103";
    print(num1, ": ", isValidPinCode(num1));
     
    # Test case 2:
    num2 = "201 305";
    print(num2, ": ", isValidPinCode(num2));
     
    # Test case 3:
    num3 = "014205";
    print(num3, ": ", isValidPinCode(num3));
     
    # Test case 4:
    num4 = "1473598";
    print(num4, ": ", isValidPinCode(num4));
     
# This code is contributed by AnkitRai01
Producción: 

132103: true
201 305: true
014205: false
1473598: 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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *