Dada una string str , la tarea es verificar si la string es una hora válida en formato de 24 horas o no mediante el uso de expresiones regulares .
La hora válida en el formato de 24 horas debe cumplir las siguientes condiciones.
- Debe comenzar desde 0-23 o 00-23.
- Debe ir seguido de un ‘:’ (dos puntos).
- Debe ir seguido de dos dígitos del 00 al 59.
- No debe terminar con ‘am’, ‘pm’ o ‘AM’, ‘PM’.
Ejemplos:
Entrada: str = “13:05”
Salida: verdadero
Explicación: La string dada cumple todas las condiciones mencionadas anteriormente.
Entrada: str = “02:15”
Salida: verdadero
Explicación: La string dada cumple todas las condiciones mencionadas anteriormente.
Entrada: str = “24:00”
Salida: falso
Explicación: La string dada no está en el rango de 0-23 o 00-23 (es decir, la hora está fuera del rango), por lo tanto, no es una hora válida en formato de 24 horas.
Entrada: str = “10:60”
Salida: falso
Explicación:La string dada no está en el rango de 00 a 59 (es decir, el minuto está fuera de rango), por lo tanto, no es una hora válida en formato de 24 horas.
Entrada: str = “10:15 PM”
Salida: falso
Explicación: La string dada termina con ‘AM’ o ‘PM’, por lo tanto, no es una hora válida en formato de 24 horas.
Enfoque: este problema se puede resolver utilizando la expresión regular.
- Consigue la cuerda.
- Cree una expresión regular para verificar la hora en formato de 24 horas como se menciona a continuación:
regex = "([01]?[0-9]|2[0-3]):[0-5][0-9]";
- Dónde:
- ( representa el inicio del grupo.
- [01]?[0-9] representa el tiempo que comienza con 0-9, 1-9, 00-09, 10-19.
- | representa o.
- 2[0-3] representa el tiempo que comienza con 20-23.
- ) representa el final del grupo.
- : representa el tiempo que debe ir seguido de dos puntos (:).
- [0-5][0-9] representa el tiempo seguido de 00 a 59
- 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 // time in 24-hour format // using Regular Expression #include <iostream> #include <regex> using namespace std; // Function to validate time in 24-hour format bool isValidTime(string str) { // Regex to check valid time in 24-hour format const regex pattern("([01]?[0-9]|2[0-3]):[0-5][0-9]"); // If the time in 24-hour format // is empty return false if (str.empty()) { return false; } // Return true if the time in 24-hour format // matched the ReGex if(regex_match(str, pattern)) { return true; } else { return false; } } // Driver Code int main() { // Test Case 1: string str1 = "13:05"; cout << str1 + ": "<< isValidTime(str1) << endl; // Test Case 2: string str2 = "02:15"; cout << str2 + ": "<< isValidTime(str2) << endl; // Test Case 3: string str3 = "24:00"; cout << str3 + ": "<< isValidTime(str3) << endl; // Test Case 4: string str4 = "10:60"; cout << str4 + ": "<< isValidTime(str4) << endl; // Test Case 5: string str5 = "10:15 PM"; cout << str5 + ": "<< isValidTime(str5) << endl; return 0; } // This code is contributed by yuvraj_chandra
Java
// Java program to validate the time in // 24-hour format using Regular Expression. import java.util.regex.*; class GFG { // Function to validate the time in 24-hour format public static boolean isValidTime(String time) { // Regex to check valid time in 24-hour format. String regex = "([01]?[0-9]|2[0-3]):[0-5][0-9]"; // Compile the ReGex Pattern p = Pattern.compile(regex); // If the time is empty // return false if (time == null) { return false; } // Pattern class contains matcher() method // to find matching between given time // and regular expression. Matcher m = p.matcher(time); // Return if the time // matched the ReGex return m.matches(); } // Driver Code. public static void main(String args[]) { // Test Case 1: String str1 = "13:05"; System.out.println(str1 + ": " + isValidTime(str1)); // Test Case 2: String str2 = "02:15"; System.out.println(str2 + ": " + isValidTime(str2)); // Test Case 3: String str3 = "24:00"; System.out.println(str3 + ": " + isValidTime(str3)); // Test Case 4: String str4 = "10:60"; System.out.println(str4 + ": " + isValidTime(str4)); // Test Case 5: String str5 = "10:15 PM"; System.out.println(str5 + ": " + isValidTime(str5)); } }
Python3
# Python3 program to validate the time in # 24-hour format using Regular Expression. import re # Function to validate the time # in 24-hour format def isValidTime(time): # Regex to check valid time in 24-hour format. regex = "^([01]?[0-9]|2[0-3]):[0-5][0-9]$"; # Compile the ReGex p = re.compile(regex); # If the time is empty # return false if (time == "") : return False; # Pattern class contains matcher() method # to find matching between given time # and regular expression. m = re.search(p, time); # Return True if the time # matched the ReGex otherwise False if m is None : return False; else : return True # Driver Code. if __name__ == "__main__" : # Test Case 1: str1 = "13:05"; print(str1, ": ", isValidTime(str1)); # Test Case 2: str2 = "02:15"; print(str2, ": ", isValidTime(str2)); # Test Case 3: str3 = "24:00"; print(str3, ": ", isValidTime(str3)); # Test Case 4: str4 = "10:60"; print(str4, ": ", isValidTime(str4)); # Test Case 5: str5 = "10:15 PM"; print(str5, ": ", isValidTime(str5)); # This code is contributed by AnkitRai01
13:05: true 02:15: true 24:00: false 10:60: false 10:15 PM: 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