Dada una URL como una string de caracteres str de tamaño N. La tarea es verificar si la URL dada es válida o no.
Ejemplos:
Entrada: str = “https://www.geeksforgeeks.org/”
Salida: Sí
Explicación:
La URL anterior es una URL válida.
Entrada: str = “https:// www.geeksforgeeks.org/”
Salida: No
Explicación:
tenga en cuenta que hay un espacio después de https://, por lo que la URL no es válida.
Enfoque: en la publicación anterior
se analiza un enfoque que usa la clase java.net.url para validar una URL . Aquí la idea es usar Expresión Regular para validar una URL.
- Obtén la URL.
- Cree una expresión regular para verificar la URL válida como se menciona a continuación:
expresión regular = “((http|https)://)(www.)?”
+ “[a-zA-Z0-9@:%._\\+~#?&//=]{2,256}\\.[az]”
+ “{2,6}\\b([-a -zA-Z0-9@:%._\\+~#?&//=]*)”
- La URL debe comenzar con http o https y
- luego seguido de :// y
- entonces debe contener www. y
- luego seguido por el subdominio de longitud (2, 256) y
- la última parte contiene un dominio de nivel superior como .com, .org, etc.
- Haga coincidir la URL dada con la expresión regular. En Java, esto se puede hacer usando Pattern.matcher() .
- Devuelve verdadero si la URL 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 URL // using Regular Expression #include <iostream> #include <regex> using namespace std; // Function to validate URL // using regular expression bool isValidURL(string url) { // Regex to check valid URL const regex pattern("((http|https)://)(www.)?[a-zA-Z0-9@:%._\\+~#?&//=]{2,256}\\.[a-z]{2,6}\\b([-a-zA-Z0-9@:%._\\+~#?&//=]*)"); // If the URL // is empty return false if (url.empty()) { return false; } // Return true if the URL // matched the ReGex if(regex_match(url, pattern)) { return true; } else { return false; } } // Driver Code int main() { string url = "https://www.geeksforgeeks.org"; if (isValidURL(url)) { cout << "YES"; } else { cout << "NO"; } return 0; } // This code is contributed by yuvraj_chandra
Java
// Java program to check URL is valid or not // using Regular Expression import java.util.regex.*; class GFG { // Function to validate URL // using regular expression public static boolean isValidURL(String url) { // Regex to check valid URL String regex = "((http|https)://)(www.)?" + "[a-zA-Z0-9@:%._\\+~#?&//=]" + "{2,256}\\.[a-z]" + "{2,6}\\b([-a-zA-Z0-9@:%" + "._\\+~#?&//=]*)"; // Compile the ReGex Pattern p = Pattern.compile(regex); // If the string is empty // return false if (url == null) { return false; } // Find match between given string // and regular expression // using Pattern.matcher() Matcher m = p.matcher(url); // Return if the string // matched the ReGex return m.matches(); } // Driver code public static void main(String args[]) { String url = "https://www.geeksforgeeks.org"; if (isValidURL(url) == true) { System.out.println("Yes"); } else System.out.println("NO"); } }
Python3
# Python3 program to check # URL is valid or not # using regular expression import re # Function to validate URL # using regular expression def isValidURL(str): # Regex to check valid URL regex = ("((http|https)://)(www.)?" + "[a-zA-Z0-9@:%._\\+~#?&//=]" + "{2,256}\\.[a-z]" + "{2,6}\\b([-a-zA-Z0-9@:%" + "._\\+~#?&//=]*)") # 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: url = "https://www.geeksforgeeks.org" if(isValidURL(url) == True): print("Yes") else: print("No") # This code is contributed by avanitrachhadiya2155
Yes
Complejidad Temporal: O (N)
Espacio Auxiliar: O (1)
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