Open In App

Valid file extension checker using Regular Expression

Last Updated : 09 Aug, 2023
Improve
Improve
Like Article
Like
Save
Share
Report

Given string str, the task is to check whether the given string is a valid file extension or not by using Regular Expression

The valid 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 end with any one of the file extensions: 
    ex : jpg, txt, mp3, png, ppt, .. etc

Examples:

Input: str = document.txt
Output: text
Explanation: Here the string extends .txt then it is a text file.

Input: str = picture.jpg
Output: picture
Explanation: Here the string extends .jpg then it is a picture file.

Below are the steps involved in the implementation of the code:

  • Get the String.
  • Converted the string to lowercase using the lower method, in case it is in uppercase.
  • Extract the extension of the substring starting from the position of the ‘.’ character to the end of the string.
  • If the extension matches one of the known extensions, the function returns a string indicating the type of the file (e.g. ‘image’ for image files, ‘audio’ for audio files, etc.). If the extension doesn’t match any of the known extensions, the function returns ‘unknown’.
  • print the file name.

Below is the implementation of the above approach:

C++




// C++ code for the above approach:
#include <bits/stdc++.h>
using namespace std;
 
string get_file_type(string filename)
{
 
    // Convert the string to lowercase
    transform(filename.begin(), filename.end(),
              filename.begin(), ::tolower);
 
    // Get the substring after (.)
    string ext
        = filename.substr(filename.find_last_of("."));
    if (ext == ".txt" || ext == ".csv" || ext == ".tsv") {
        return "text";
    }
    else if (ext == ".png" || ext == ".jpg"
             || ext == ".jpeg" || ext == ".gif") {
        return "image";
    }
    else if (ext == ".pdf") {
        return "pdf";
    }
    else if (ext == ".mp3" || ext == ".wav"
             || ext == ".wma") {
        return "audio";
    }
    else if (ext == ".mp4" || ext == ".avi" || ext == ".mov"
             || ext == ".wmv") {
        return "video";
    }
    else if (ext == ".doc" || ext == ".docx") {
        return "document";
    }
    else if (ext == ".xls" || ext == ".xlsx") {
        return "spreadsheet";
    }
    else if (ext == ".ppt" || ext == ".pptx") {
        return "presentation";
    }
    else if (ext == ".zip" || ext == ".rar"
             || ext == ".7z") {
        return "archive";
    }
    else if (ext == ".exe" || ext == ".msi") {
        return "executable";
    }
    else if (ext == ".java" || ext == ".c" || ext == ".py"
             || ext == ".cpp") {
        return "code";
    }
    else {
        return "unknown";
    }
}
 
// Driver code
int main()
{
    string str = "document.txt";
 
    // Function call
    string ans = get_file_type(str);
    cout << ans << endl;
    return 1;
}


Java




import java.util.*;
import java.io.*;
 
public class GFG {
    public static String getFileType(String filename) {
       
      // Convert the string to lowercase   
        filename = filename.toLowerCase();
       
      // Get the substring after (.)
        String ext = filename.substring(filename.lastIndexOf("."));
       
      // Checking types of extension and return file type
        if (ext.equals(".txt") || ext.equals(".csv") || ext.equals(".tsv")) {
            return "text";
        } else if (ext.equals(".png") || ext.equals(".jpg") || ext.equals(".jpeg") || ext.equals(".gif")) {
            return "image";
        } else if (ext.equals(".pdf")) {
            return "pdf";
        } else if (ext.equals(".mp3") || ext.equals(".wav") || ext.equals(".wma")) {
            return "audio";
        } else if (ext.equals(".mp4") || ext.equals(".avi") || ext.equals(".mov") || ext.equals(".wmv")) {
            return "video";
        } else if (ext.equals(".doc") || ext.equals(".docx")) {
            return "document";
        } else if (ext.equals(".xls") || ext.equals(".xlsx")) {
            return "spreadsheet";
        } else if (ext.equals(".ppt") || ext.equals(".pptx")) {
            return "presentation";
        } else if (ext.equals(".zip") || ext.equals(".rar") || ext.equals(".7z")) {
            return "archive";
        } else if (ext.equals(".exe") || ext.equals(".msi")) {
            return "executable";
        } else if (ext.equals(".java") || ext.equals(".c") || ext.equals(".py") || ext.equals(".cpp")) {
            return "code";
        } else {
            return "unknown";
        }
    }
 
   
  // Function call
    public static void main(String[] args) {
        String str = "document.txt";
        String ans = getFileType(str);
        System.out.println(ans);
    }
}


Python3




# Python code for the above approach
def get_file_type(filename):
    # Convert the filename to lowercase
    filename = filename.lower()
 
    # Get the substring after (.)
    ext = filename[filename.rfind("."):]
     
    if ext == ".txt" or ext == ".csv" or ext == ".tsv":
        return "text"
    elif ext == ".png" or ext == ".jpg" or ext == ".jpeg" or ext == ".gif":
        return "image"
    elif ext == ".pdf":
        return "pdf"
    elif ext == ".mp3" or ext == ".wav" or ext == ".wma":
        return "audio"
    elif ext == ".mp4" or ext == ".avi" or ext == ".mov" or ext == ".wmv":
        return "video"
    elif ext == ".doc" or ext == ".docx":
        return "document"
    elif ext == ".xls" or ext == ".xlsx":
        return "spreadsheet"
    elif ext == ".ppt" or ext == ".pptx":
        return "presentation"
    elif ext == ".zip" or ext == ".rar" or ext == ".7z":
        return "archive"
    elif ext == ".exe" or ext == ".msi":
        return "executable"
    elif ext == ".java" or ext == ".c" or ext == ".py" or ext == ".cpp":
        return "code"
    else:
        return "unknown"
 
# Driver code
filename = "document.txt"
 
# Function call
file_type = get_file_type(filename)
print(file_type)


C#




// C# code for the above approach:
using System;
 
class GFG
{
    static string GetFileType(string filename)
    {
        // Convert the filename to lowercase
        filename = filename.ToLower();
        // Get the substring after last dot (.)
        string ext = filename.Substring(filename.LastIndexOf("."));
       if (ext == ".txt" || ext == ".csv" || ext == ".tsv")
        {
            return "text";
        }
        else if (ext == ".png" || ext == ".jpg" || ext == ".jpeg" || ext == ".gif")
        {
            return "image";
        }
        else if (ext == ".pdf")
        {
            return "pdf";
        }
        else if (ext == ".mp3" || ext == ".wav" || ext == ".wma")
        {
            return "audio";
        }
        else if (ext == ".mp4" || ext == ".avi" || ext == ".mov" || ext == ".wmv")
        {
            return "video";
        }
        else if (ext == ".doc" || ext == ".docx")
        {
            return "document";
        }
        else if (ext == ".xls" || ext == ".xlsx")
        {
            return "spreadsheet";
        }
        else if (ext == ".ppt" || ext == ".pptx")
        {
            return "presentation";
        }
        else if (ext == ".zip" || ext == ".rar" || ext == ".7z")
        {
            return "archive";
        }
        else if (ext == ".exe" || ext == ".msi")
        {
            return "executable";
        }
        else if (ext == ".cs" || ext == ".java" || ext == ".py" || ext == ".cpp")
        {
            return "code";
        }
        else
        {
            return "unknown";
        }
    }
    // Driver code
    static void Main()
    {
        string filename = "document.txt";
        // Function call
        string fileType = GetFileType(filename);
        Console.WriteLine(fileType);
    }
}


Javascript




function getFileType(filename) {
  
 // Convert the string to lowercase
 filename = filename.toLowerCase();
   
 // Get the substring after (.)
 var ext = filename.substr(filename.lastIndexOf("."));
   
  // Checking types of extension and return file type
  if (ext === ".txt" || ext === ".csv" || ext === ".tsv") {
    return "text";
  } else if (ext === ".png" || ext === ".jpg" || ext === ".jpeg" || ext === ".gif") {
    return "image";
  } else if (ext === ".pdf") {
    return "pdf";
  } else if (ext === ".mp3" || ext === ".wav" || ext === ".wma") {
    return "audio";
  } else if (ext === ".mp4" || ext === ".avi" || ext === ".mov" || ext === ".wmv") {
    return "video";
  } else if (ext === ".doc" || ext === ".docx") {
    return "document";
  } else if (ext === ".xls" || ext === ".xlsx") {
    return "spreadsheet";
  } else if (ext === ".ppt" || ext === ".pptx") {
    return "presentation";
  } else if (ext === ".zip" || ext === ".rar" || ext === ".7z") {
    return "archive";
  } else if (ext === ".exe" || ext === ".msi") {
    return "executable";
  } else if (ext === ".java" || ext === ".c" || ext === ".py" || ext === ".cpp") {
    return "code";
  } else {
    return "unknown";
  }
}
 
// Function call
var str = "document.txt";
var ans = getFileType(str);
console.log(ans);


Output

text







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

Related Articles:



Like Article
Suggest improvement
Previous
Next
Share your thoughts in the comments

Similar Reads