- Save Regexctrl+s
- Go to library entry

- PCRE2 (PHP >=7.3)
- PCRE (PHP <7.3)
- ECMAScript (JavaScript)
- Python
- Golang
- Java 8

- Match
- Substitution
- List
- Unit Tests

Sponsor

Jamstack at Scale

/

^((([A-Za-z][A-Za-z0-9]*[\.\_]*[A-Za-z0-9]+){0,30}@[a-z]{3,15}\.[a-z]{2,5})|(([A-Za-z][A-Za-z0-9]*[._]*[A-Za-z0-9]+){0,30}@[a-z]{3,15}\.[a-z]{2}\.[a-z]{2,5}))$

/

^ asserts position at start of the string

1st Capturing Group

((([A-Za-z][A-Za-z0-9]*[\.\_]*[A-Za-z0-9]+){0,30}@[a-z]{3,15}\.[a-z]{2,5})|(([A-Za-z][A-Za-z0-9]*[._]*[A-Za-z0-9]+){0,30}@[a-z]{3,15}\.[a-z]{2}\.[a-z]{2,5}))

1st Alternative

(([A-Za-z][A-Za-z0-9]*[\.\_]*[A-Za-z0-9]+){0,30}@[a-z]{3,15}\.[a-z]{2,5})

2nd Capturing Group

(([A-Za-z][A-Za-z0-9]*[\.\_]*[A-Za-z0-9]+){0,30}@[a-z]{3,15}\.[a-z]{2,5})

3rd Capturing Group

([A-Za-z][A-Za-z0-9]*[\.\_]*[A-Za-z0-9]+){0,30}

{0,30} matches the previous token between 0 and 30 times, as many times as possible, giving back as needed (greedy)

A repeated capturing group will only capture the last iteration. Put a capturing group around the repeated group to capture all iterations or use a non-capturing group instead if you're not interested in the data

Match a single character present in the list below

[A-Za-z]

A-Z matches a single character in the range between A (index 65) and Z (index 90) (case sensitive)

a-z matches a single character in the range between a (index 97) and z (index 122) (case sensitive)

Match a single character present in the list below

[A-Za-z0-9]

* matches the previous token between zero and unlimited times, as many times as possible, giving back as needed (greedy)

A-Z matches a single character in the range between A (index 65) and Z (index 90) (case sensitive)

a-z matches a single character in the range between a (index 97) and z (index 122) (case sensitive)

0-9 matches a single character in the range between 0 (index 48) and 9 (index 57) (case sensitive)

Match a single character present in the list below

[\.\_]

* matches the previous token between zero and unlimited times, as many times as possible, giving back as needed (greedy)

\. matches the character . with index 46_{10} (2E_{16} or 56_{8}) literally (case sensitive)

\_ matches the character _ with index 95_{10} (5F_{16} or 137_{8}) literally (case sensitive)

Match a single character present in the list below

[A-Za-z0-9]

+ matches the previous token between one and unlimited times, as many times as possible, giving back as needed (greedy)

A-Z matches a single character in the range between A (index 65) and Z (index 90) (case sensitive)

a-z matches a single character in the range between a (index 97) and z (index 122) (case sensitive)

0-9 matches a single character in the range between 0 (index 48) and 9 (index 57) (case sensitive)

@ matches the character @ with index 64_{10} (40_{16} or 100_{8}) literally (case sensitive)

Match a single character present in the list below

[a-z]

{3,15} matches the previous token between 3 and 15 times, as many times as possible, giving back as needed (greedy)

a-z matches a single character in the range between a (index 97) and z (index 122) (case sensitive)

\. matches the character . with index 46_{10} (2E_{16} or 56_{8}) literally (case sensitive)

Match a single character present in the list below

[a-z]

{2,5} matches the previous token between 2 and 5 times, as many times as possible, giving back as needed (greedy)

a-z matches a single character in the range between a (index 97) and z (index 122) (case sensitive)

2nd Alternative

(([A-Za-z][A-Za-z0-9]*[._]*[A-Za-z0-9]+){0,30}@[a-z]{3,15}\.[a-z]{2}\.[a-z]{2,5})

4th Capturing Group

(([A-Za-z][A-Za-z0-9]*[._]*[A-Za-z0-9]+){0,30}@[a-z]{3,15}\.[a-z]{2}\.[a-z]{2,5})

5th Capturing Group

([A-Za-z][A-Za-z0-9]*[._]*[A-Za-z0-9]+){0,30}

{0,30} matches the previous token between 0 and 30 times, as many times as possible, giving back as needed (greedy)

A repeated capturing group will only capture the last iteration. Put a capturing group around the repeated group to capture all iterations or use a non-capturing group instead if you're not interested in the data

Match a single character present in the list below

[A-Za-z]

A-Z matches a single character in the range between A (index 65) and Z (index 90) (case sensitive)

a-z matches a single character in the range between a (index 97) and z (index 122) (case sensitive)

Match a single character present in the list below

[A-Za-z0-9]

* matches the previous token between zero and unlimited times, as many times as possible, giving back as needed (greedy)

A-Z matches a single character in the range between A (index 65) and Z (index 90) (case sensitive)

a-z matches a single character in the range between a (index 97) and z (index 122) (case sensitive)

0-9 matches a single character in the range between 0 (index 48) and 9 (index 57) (case sensitive)

Match a single character present in the list below

[._]

._

matches a single character in the list ._ (case sensitive)Match a single character present in the list below

[A-Za-z0-9]

+ matches the previous token between one and unlimited times, as many times as possible, giving back as needed (greedy)

A-Z matches a single character in the range between A (index 65) and Z (index 90) (case sensitive)

a-z matches a single character in the range between a (index 97) and z (index 122) (case sensitive)

0-9 matches a single character in the range between 0 (index 48) and 9 (index 57) (case sensitive)

@ matches the character @ with index 64_{10} (40_{16} or 100_{8}) literally (case sensitive)

Match a single character present in the list below

[a-z]

{3,15} matches the previous token between 3 and 15 times, as many times as possible, giving back as needed (greedy)

a-z matches a single character in the range between a (index 97) and z (index 122) (case sensitive)

\. matches the character . with index 46_{10} (2E_{16} or 56_{8}) literally (case sensitive)

Match a single character present in the list below

[a-z]

{2} matches the previous token exactly 2 times

a-z matches a single character in the range between a (index 97) and z (index 122) (case sensitive)

\. matches the character . with index 46_{10} (2E_{16} or 56_{8}) literally (case sensitive)

Match a single character present in the list below

[a-z]

{2,5} matches the previous token between 2 and 5 times, as many times as possible, giving back as needed (greedy)

a-z matches a single character in the range between a (index 97) and z (index 122) (case sensitive)

$ asserts position at the end of the string

Your regular expression does not match the subject string.

No Match

/

/

Processing...

Please wait while the app is loading...