How to validate image file extension using Regular Expression

04 Feb, 2021
Given string str, the task is to check whether the given string is a valid image file extension or not by using Regular Expression. 
The valid image file extension must specify the following conditions:  
It should start with a string of at least one character.It should not have any white space.It should be followed by a dot(.).It should be end with any one of the following extensions: jpg, jpeg, png, gif, bmp.
It should start with a string of at least one character.
It should not have any white space.
It should be followed by a dot(.).
It should be end with any one of the following extensions: jpg, jpeg, png, gif, bmp.
Examples:  
Input: str = “abc.png” Output: true Explanation: The given string satisfy all the above mentioned conditions.Input: str = “im.jpg” Output: true Explanation: The given string satisfy all the above mentioned conditions.Input: str = “.gif” Output: false Explanation: The given string doesn’t start with image file name(required at least one character). Therefore, it is not a valid image file extension. 
Approach: This problem can be solved by using regular expression. 
Get the String.
Create a regular expression to check the valid image file extension as mentioned below:
regex = “([^\\s]+(\\.(?i)(jpe?g|png|gif|bmp))$)”; 
Where: ( represents the starting of group 1.[^\\s]+ represents the string must contain at least one character.( represents the starting of group 2.\\. Represents the string should follow by a dot(.).(?i) represents the string ignore the case-sensitive.( represents the starting of group3.jpe?g|png|gif|bmp represents the string end with jpg or jpeg or png or gif or bmp extension.) represents the ending of the group 3.) represents the ending of the group 2.$ represents the end of the string.) represents the ending of the group 1.
( represents the starting of group 1.
[^\\s]+ represents the string must contain at least one character.
( represents the starting of group 2.
\\. Represents the string should follow by a dot(.).
(?i) represents the string ignore the case-sensitive.
( represents the starting of group3.
jpe?g|png|gif|bmp represents the string end with jpg or jpeg or png or gif or bmp extension.
) represents the ending of the group 3.
) represents the ending of the group 2.
$ represents the end of the string.
) represents the ending of the group 1.
Match the given string with regular expression. In Java, this can be done by using Pattern.matcher().
Return true if the given string matched with the regular expression, else return false.
Below is the implementation of the above approach:
C++
Java
Python3
// C++ program to validate the// image file extension using Regular Expression#include <iostream>#include <regex>using namespace std; // Function to validate the image file extension.bool imageFile(string str){   // Regex to check valid image file extension.  const regex pattern("[^\\s]+(.*?)\\.(jpg|jpeg|png|gif|JPG|JPEG|PNG|GIF)$");   // If the image file extension  // is empty return false  if (str.empty())  {     return false;  }   // Return true if the image file extension  // matched the ReGex  if(regex_match(str, pattern))  {    return true;  }  else  {    return false;  }} // Driver Codeint main(){     // Test Case 1:  string str1 = "abc.png";  cout << imageFile(str1) << endl;   // Test Case 2:  string str2 = "im.jpg";  cout << imageFile(str2) << endl;   // Test Case 3:  string str3 = ".gif";  cout << imageFile(str3) << endl;   // Test Case 4:  string str4 = "abc.mp3";  cout << imageFile(str4) << endl;   // Test Case 5:  string str5 = " .jpg";  cout << imageFile(str5) << endl;   return 0;} // This code is contributed by yuvraj_chandra
// Java program to check valid// image file extension using regex import java.util.regex.*;class GFG {     // Function to validate image file extension .    public static boolean imageFile(String str)    {        // Regex to check valid image file extension.        String regex            = "([^\\s]+(\\.(?i)(jpe?g|png|gif|bmp))$)";         // 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 = "abc.png";        System.out.println(imageFile(str1));         // Test Case 2:        String str2 = "im.jpg";        System.out.println(imageFile(str2));         // Test Case 3:        String str3 = ".gif";        System.out.println(imageFile(str3));         // Test Case 4:        String str4 = "abc.mp3";        System.out.println(imageFile(str4));         // Test Case 5:        String str5 = " .jpg";        System.out.println(imageFile(str5));    }}
# Python3 program to validate# image file extension using regeximport re # Function to validate# image file extension . def imageFile(str):     # Regex to check valid image file extension.    regex = "([^\\s]+(\\.(?i)(jpe?g|png|gif|bmp))$)"         # 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 = "abc.png"print(imageFile(str1)) # Test Case 2:str2 = "im.jpg"print(imageFile(str2)) # Test Case 3:str3 = ".gif"print(imageFile(str3)) # Test Case 4:str4 = "abc.mp3"print(imageFile(str4)) # Test Case 5:str5 = " .jpg"print(imageFile(str5)) # This code is contributed by avanitrachhadiya2155
true
true
false
false
false
 
avanitrachhadiya2155
yuvraj_chandra
CPP-regex
java-regular-expression
Pattern Searching
Strings
Strings
Pattern Searching
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.
How to validate GST (Goods and Services Tax) number using Regular Expression
Ukkonen's Suffix Tree Construction - Part 6
Optimized Algorithm for Pattern Searching
­­kasai’s Algorithm for Construction of LCP array from Suffix Array
Find all occurrences of a given word in a matrix
Write a program to reverse an array or string
Reverse a string in Java
C++ Data Types
Write a program to print all permutations of a given string
Different Methods to Reverse a String in C++