ada@example.com
adaexample.comadaexample.comAppHelp
See matches as you type, inspect indexes and capture groups, verify positive and negative cases, preview replacements, and copy a safe JavaScript snippet.
Build against the browser JavaScript RegExp engine with live highlights, tests, replacement, and generated code.
/(?<user>[A-Z0-9._%+-]+)@(?<domain>[A-Z0-9.-]+\.[A-Z]{2,})/gi
Contact ada@example.com or support@apphelp.net. Invalid: person@example.
ada@example.com
adaexample.comadaexample.comsupport@apphelp.net
supportapphelp.netsupportapphelp.net.Any character except a line break
\d / \w / \sDigit, word, and whitespace classes
* + ?Zero or more, one or more, optional
{2,5}Repeat from 2 through 5 times
^ $Start and end anchors
(...) / (?:...)Capturing and non-capturing groups
(?<name>...)Named capture group
(?=...) / (?!...)Positive and negative lookahead
Enter a JavaScript regular-expression pattern, select explicit flags, and paste test text. AppHelp compiles the pattern with the browser RegExp engine, highlights each JavaScript match, reports index ranges and capture groups, previews replacement tokens, runs positive and negative line-based tests, and generates a safely escaped constructor snippet. Other engines such as PCRE, Python, Java, .NET, and RE2 can behave differently.
(?<user>[A-Z0-9._%+-]+)@(?<domain>[A-Z0-9.-]+\.[A-Z]{2,}) / giMatches email-like text and exposes user and domain groups.
\b(?<year>\d{4})-(?<month>0[1-9]|1[0-2])-(?<day>0[1-9]|[12]\d|3[01])\b / gCaptures year, month, and day from YYYY-MM-DD candidates.
This checks numeric shape, not calendar validity such as February 31.
\b(?<word>\w+)\s+\k<word>\b / gi
Finds adjacent repeated words such as is is.