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.
- Debe comenzar con el símbolo ‘#’.
- Debe ir seguido de las letras de af, AF y/o dígitos del 0 al 9.
- 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
#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