Open In App

Valid file extension checker using Regular Expression

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:



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:

Below is the implementation of the above approach:




// 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;
}




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);
    }
}




# 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# 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);
    }
}




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:


Article Tags :