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:
- 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:
Contact Us