Check if an URL is valid or not using Regular Expression (original) (raw)

Last Updated : 15 Jul, 2025

Given a URL as a character string str of size N.The task is to check if the given URL is valid or not.
Examples :

Input : str = "https://www.geeksforgeeks.org/"
Output : Yes
Explanation :
The above URL is a valid URL.
Input : str = "https:// www.geeksforgeeks.org/"
Output : No
Explanation :
Note that there is a space after https://, hence the URL is invalid.

Approach :
An approach using java.net.url class to validate a URL is discussed in the previous post.
Here the idea is to use Regular Expression to validate a URL.

regex = "((http|https)://)(www.)?"
+ "[a-zA-Z0-9@:%._\\+~#?&//=]{2,256}\\.[a-z]"
+ "{2,6}\\b([-a-zA-Z0-9@:%._\\+~#?&//=]*)"

Below is the implementation of the above approach:

C++ `

// C++ program to validate URL // using Regular Expression #include #include 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

C#

// C# program to check URL is valid or not //using Regular Expressions using System; using System.Text.RegularExpressions; class GFG {

// Main Method static void Main(string[] args) {

// Input strings to Match
// Valid URL
string[] str={"https://www.geeksforgeeks.org"};
foreach(string s in str) {
  Console.WriteLine( isValidURL(s) ? "true" : "false"); 
}
Console.ReadKey(); }

// method containing the regex public static bool isValidURL(string str) { string strRegex = @"((http|https)://)(www.)?" + "[a-zA-Z0-9@:%._\+#?&//=]" + "{2,256}\.[a-z]" + "{2,6}\b([-a-zA-Z0-9@:%" + "._\+#?&//=]*)"; Regex re = new Regex(strRegex); if (re.IsMatch(str)) return (true); else return (false); } }

// This code is contributed by Rahul Chauhan

JavaScript

function isValidURL(str) { if(/^(http(s)://.)[-a-zA-Z0-9@:%._+#=]{2,256}.[a-z]{2,6}\b([-a-zA-Z0-9@:%_+.#?&//=]*)$/g.test(str)) { console.log('YES'); } else { console.log('NO'); } }

isValidURL("https://www.geeksforgeeks.org");

// This code is contributed by Rahul Chauhan

`

Time Complexity: O (N)
Auxiliary Space: O (1)