Cómo validar el código de color hexadecimal usando expresiones regulares

Dada la string str , la tarea es verificar si la string es un código de color hexadecimal válido o no mediante el uso de expresiones regulares .

El código de color hexadecimal válido debe cumplir las siguientes condiciones. 
 

  1. Debe comenzar con el símbolo ‘#’.
  2. Debe ir seguido de las letras de af, AF y/o dígitos del 0 al 9.
  3. La longitud del código de color hexadecimal debe ser 6 o 3, excluyendo el símbolo ‘#’.

Por ejemplo: #abc, #ABC, #000, #FFF, #000000, #FF0000, #00FF00, #0000FF, #FFFFFF son todos códigos de color hexadecimales válidos.
Ejemplos: 

Entrada: str = “#1AFFa1”; 
Salida: verdadero 
Explicación: 
La string dada satisface todas las condiciones mencionadas anteriormente.
Entrada: string = “#F00”; 
Salida: verdadero 
Explicación: 
La string dada satisface todas las condiciones mencionadas anteriormente.
Entrada: string = «123456»; 
Salida: falso 
Explicación: 
la string dada no comienza con un símbolo ‘#’, por lo tanto, no es un código de color hexadecimal válido.
Entrada: str = “#123abce”; 
Salida: falso 
Explicación: 
La string dada tiene una longitud de 7, la longitud del código de color hexadecimal válido debe ser 6 o 3. Por lo tanto, no es un código de color hexadecimal válido.
Entrada: str = “#afafah”; 
Salida: falso 
Explicación: 
La string dada contiene ‘h’, el código de color hexadecimal válido debe ir seguido de la letra de af, AF. Por lo tanto, no es un código de color hexadecimal válido. 

Enfoque: este problema se puede resolver utilizando la expresión regular. 

  • Consigue la cuerda.
  • Cree una expresión regular para verificar el código de color hexadecimal válido como se menciona a continuación:
regex = "^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$";
  • Dónde: 
    • ^ representa el comienzo de la string.
    • # representa el código de color hexadecimal que debe comenzar con un símbolo ‘#’.
    • ( representa el inicio del grupo.
    • [A-Fa-f0-9]{6} representa la letra de af, AF o dígito del 0 al 9 con una longitud de 6.
    • | representa el o.
    • [A-Fa-f0-9]{3} representa la letra de af, AF o dígito del 0 al 9 con una longitud de 3.
    • ) representa el final del grupo.
    • $ representa el final de la string.
  • 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:

C++

// C++ program to validate the
// hexadecimal color code using Regular Expression
#include <iostream>
#include <regex>
using namespace std;
 
// Function to validate the hexadecimal color code.
bool isValidHexaCode(string str)
{
 
  // Regex to check valid hexadecimal color code.
  const regex pattern("^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$");
 
  // If the hexadecimal color code
  // is empty return false
  if (str.empty())
  {
     return false;
  }
 
  // Return true if the hexadecimal color code
  // matched the ReGex
  if(regex_match(str, pattern))
  {
    return true;
  }
  else
  {
    return false;
  }
}
 
// Driver Code
int main()
{
   
  // Test Case 1:
  string str1 = "#1AFFa1";
  cout << str1 + ": " << isValidHexaCode(str1) << endl;
 
  // Test Case 2:
  string str2 = "#F00";
  cout << str2 + ": " <<  isValidHexaCode(str2) << endl;
 
  // Test Case 3:
  string str3 = "123456";
  cout << str3 + ": " <<  isValidHexaCode(str3) << endl;
 
  // Test Case 4:
  string str4 = "#123abce";
  cout << str4 + ": " <<  isValidHexaCode(str4) << endl;
 
  // Test Case 5:
  string str5 = "#afafah";
  cout << str5 + ": " <<  isValidHexaCode(str5) << endl;
 
  return 0;
}
 
// This code is contributed by yuvraj_chandra

Java

// Java program to validate hexadecimal
// colour code using Regular Expression
 
import java.util.regex.*;
 
class GFG {
 
    // Function to validate hexadecimal color code .
    public static boolean isValidHexaCode(String str)
    {
        // Regex to check valid hexadecimal color code.
        String regex = "^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$";
 
        // Compile the ReGex
        Pattern p = Pattern.compile(regex);
 
        // If the string is empty
        // return false
        if (str == null) {
            return false;
        }
 
        // Pattern class contains matcher() method
        // to find matching between given string
        // and regular expression.
        Matcher m = p.matcher(str);
 
        // Return if the string
        // matched the ReGex
        return m.matches();
    }
 
    // Driver Code.
    public static void main(String args[])
    {
 
        // Test Case 1:
        String str1 = "#1AFFa1";
        System.out.println(
            str1 + ": "
            + isValidHexaCode(str1));
 
        // Test Case 2:
        String str2 = "#F00";
        System.out.println(
            str2 + ": "
            + isValidHexaCode(str2));
 
        // Test Case 3:
        String str3 = "123456";
        System.out.println(
            str3 + ": "
            + isValidHexaCode(str3));
 
        // Test Case 4:
        String str4 = "#123abce";
        System.out.println(
            str4 + ": "
            + isValidHexaCode(str4));
 
        // Test Case 5:
        String str5 = "#afafah";
        System.out.println(
            str5 + ": "
            + isValidHexaCode(str5));
    }
}

Python3

# Python3 program to validate
# hexadecimal colour code using
# Regular Expression
import re
 
# Function to validate
# hexadecimal color code .
def isValidHexaCode(str):
 
    # Regex to check valid
    # hexadecimal color code.
    regex = "^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$"
 
    # Compile the ReGex
    p = re.compile(regex)
 
    # If the string is empty
    # return false
    if(str == None):
        return False
 
    # Return if the string
    # matched the ReGex
    if(re.search(p, str)):
        return True
    else:
        return False
 
# Driver Code.
 
# Test Case 1:
str1 = "#1AFFa1"
print(str1, ":", isValidHexaCode(str1))
 
# Test Case 2:
str2 = "#F00"
print(str2, ":", isValidHexaCode(str2))
 
# Test Case 3:
str3 = "123456"
print(str3, ":", isValidHexaCode(str3))
 
# Test Case 4:
str4 = "#123abce"
print(str4, ":", isValidHexaCode(str4))
 
# Test Case 5:
str5 = "#afafah"
print(str5, ":", isValidHexaCode(str5))
 
# This code is contributed by avanitrachhadiya2155
Producción: 

#1AFFa1: true
#F00: true
123456: false
#123abce: false
#afafah: 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 *