Home > front end >  Extract text with special characters using regex python
Extract text with special characters using regex python

Time:03-02

I have a secuence of emails of the form [email protected].

I would like to get firstname, lastname and domain using regex.

I could manage to get the domain, like this:

domain = re.search('@. ', email).group()

but I'm getting problems with firstname and lastname.

Kindly, can you please explain me how to do it.

CodePudding user response:

You need to use parentheses in regular expressions, in order to access the matched substrings. Notice that there are three parentheses in the regular expression below, for matching the first name, last name and domain, respectively.

m = re.match(r'(.*)\.(.*)@(.*)', email)
assert m is not None
firstname = m.group(1)
lastname = m.group(2)
domain = m.group(3)

Two more notes:

  1. You need to escape the dot that separates the first name and the last name, by using a backslash.
  2. It is convenient to use the prefix r to the regular expression string, to avoid duplicating the backslash character.

CodePudding user response:

v = "[email protected]"
pattern = re.compile(r"(.*)\.(.*)@([a-z] )\.[a-z] ")
pattern.findall(v)

pattern.findall(v)
Out[7]: [('firstname', 'lastname', 'gmail')]

The output will be a tuple consisting of first name, lastname and domain.

  • Related