Friday, January 10, 2025
Google search engine
HomeData Modelling & AIExtracting all Email Ids in any given String using Regular Expressions

Extracting all Email Ids in any given String using Regular Expressions

Given a string str, the task is to extract all the Email ID’s from the given string.

Example:

Input: “Please send your resumes to Hr@Iwillgetbacktoyou@gmail.com for any business inquiry please mail us at business@enquiry@gmail.com”
Output: Hr@Iwillgetbacktoyou@gmail.com
business@enquiry@gmail.com

Approach: The problem can be solved based on the following idea:

Create a regex pattern to validate the number as written below:   
regex = “^[0-9]{3}[A-Z]{2}[0-9]{8}$

Where,

  • $: Matches the end of the line
  • \s: Matches whitespace
  • \S: Matches any non-whitespace character
  • *: Repeats a character zero or more times
  • \S: Matches any non-whitespace character
  • *?: Repeats a character zero or more times (non-greedy)
  • +: Repeats a character one or more times
  • +?: Repeats a character one or more times (non-greedy)
  • [aeiou]: Matches a single character in the listed set
  • [^ABC]: Matches a single character, not in the listed set
  • [a-z0-9]: The set of characters can include a range
  • (: Indicates where string extraction is to start
  • ): Indicates where string extraction is to end

Follow the below steps to implement the idea:

  • Create a regex expression to extract all the Email Ids from the string.
  • Use Pattern class to compile the regex formed.
  • Use the matcher function to find.

Below is the code implementation of the above-discussed approach:

C++




// C++ code for the above approach
#include <iostream>
#include <regex>
#include <string>
 
using namespace std;
 
void findEmails(string str)
{
    // You can Add n number of Email
    // formats in the below given
    // String Array.
    string strPattern[]
        = { "\\S+@\\S+" };
    for (int i = 0; i < 1; i++) {
        regex pattern(strPattern[i]);
        smatch matches;
        while (regex_search(str, matches, pattern)) {
            cout << matches[0] << endl;
            str = matches.suffix().str();
        }
    }
}
 
int main()
{
    string str = "Please send your resumes on "
                 "Hr@Iwillgetbacktoyou.com "
                 "for any business enquiry please mail us "
                 "on business@enquiry.com "
                 "review-team@geeksforgeeks.org "
                 "and writing.geeksforgeeks.org";
    findEmails(str);
    return 0;
}
 
// This code is contributed by shivamsharma215


Java




// Java code for the above approach
import java.io.*;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
 
public class GFG {
 
    // Driver Code
    public static void main(String[] args)
    {
 
        // String containing in it
        String str
            = "Please send your resumes on Hr@Iwillgetbacktoyou@gmail.com"
              + "  for any business enquiry please mail us on business@enquiry@gmail.com"
              + " review-team@geeksforgeeks.org "
              + "and writing.geeksforgeeks.org";
 
        findEmails(str);
    }
 
    // Function to extract all email
    // id's from a given string
    static void findEmails(String str)
    {
 
        // You can Add n number of Email
        // formats in the below given
        // String Array.
        String strPattern[] = { "\\S+@\\S+" };
        for (int i = 0; i < strPattern.length; i++) {
            Pattern pattern
                = Pattern.compile(strPattern[i]);
            Matcher matcher = pattern.matcher(str);
            while (matcher.find()) {
                System.out.println(matcher.group());
            }
        }
    }
}


Python3




import re
 
def find_emails(text):
    # List of email patterns to look for
    patterns = [r"\S+@\S+"]
     
    for pattern in patterns:
        # Compile the pattern
        email_regex = re.compile(pattern)
         
        # Find all instances of the pattern in the text
        emails = email_regex.findall(text)
         
        # Print each email found
        for email in emails:
            print(email)
 
# Example usage
text = "Please send your resumes on Hr@Iwillgetbacktoyou@gmail.com" \
       "  for any business enquiry please mail us on business@enquiry@gmail.com" \
       " review-team@geeksforgeeks.org " \
       "and writing.geeksforgeeks.org"
find_emails(text)


C#




// C# code for the above approach
using System;
using System.Text.RegularExpressions;
 
class GFG
{
   
  // Driver Code
  static void Main(string[] args)
  {
 
    // String containing in it
    string str
      = "Please send your resumes on Hr@Iwillgetbacktoyou@gmail.com"
      + "  for any business enquiry please mail us on business@enquiry@gmail.com"
      + " review-team@geeksforgeeks.org "
      + "and writing.geeksforgeeks.org";
 
    findEmails(str);
  }
 
  // Function to extract all email
  // id's from a given string
  static void findEmails(string str)
  {
 
    // You can Add n number of Email
    // formats in the below given
    // String Array.
    string[] strPattern = { @"\S+@\S+" };
    for (int i = 0; i < strPattern.Length; i++) {
      MatchCollection matches
        = Regex.Matches(str, strPattern[i]);
      foreach(Match match in matches)
      {
        Console.WriteLine(match.Value);
      }
    }
  }
}
 
// This code is contributed by ik_9


Javascript




// JS code to implement above approach
 
function findEmails(str) {
    // You can Add n number of Email
    // formats in the below given
    // String Array.
    const strPattern = ["\\S+@\\S+"];
    for (let i = 0; i < 1; i++) {
        const pattern = new RegExp(strPattern[i], 'g');
        let matches;
        while ((matches = pattern.exec(str)) !== null) {
            console.log(matches[0]);
        }
    }
}
 
const str = "Please send your resumes on " +
            "Hr@Iwillgetbacktoyou.com " +
            "for any business enquiry please mail us " +
            "on business@enquiry.com " +
            "review-team@geeksforgeeks.org " +
            "and writing.geeksforgeeks.org";
findEmails(str);
 
//this code is contributed by Tushar_Rokade


Output

Hr@Iwillgetbacktoyou@gmail.com
business@enquiry@gmail.com
review-team@geeksforgeeks.org

Time Complexity: O(n)

Space Complexity: O(n)

Related Articles:

Feeling lost in the world of random DSA topics, wasting time without progress? It’s time for a change! Join our DSA course, where we’ll guide you on an exciting journey to master DSA efficiently and on schedule.
Ready to dive in? Explore our Free Demo Content and join our DSA course, trusted by over 100,000 neveropen!

RELATED ARTICLES

Most Popular

Recent Comments