Extract emails from text

Extract emails finds every email-shaped token in pasted text and lists them one per line. The match rule is [\w.+-]+@[\w-]+\.[\w.-]*[\w-]: a local part of letters, digits, dots, plus and minus, an @, then a domain with at least one dot, ending on a non-dot character so the trailing sentence period in "[email protected]." is left out of the match. Plus-aliases like [email protected] are kept intact. The transform runs in your browser; nothing uploads.

Input
Line 1:1 LF cloud_done Saved locally
Result Extract Emails
0 lines 0 chars

How email matching works here

The pattern is deliberately practical, not strictly RFC 5322. Anything that looks like [email protected] is captured: letters, digits, underscores, dots, plus-signs and hyphens before the @; letters, digits, dots and hyphens after it; and at least one literal dot in the domain. Most real-world addresses pasted from emails, signatures, contact pages and CSVs match cleanly.

Plus-aliases such as [email protected] are preserved verbatim so you can still tell campaign tags apart. Trailing punctuation that sits next to an address (commas, full stops, brackets) is excluded by the character class, so "contact [email protected]." yields [email protected] with no trailing dot.

The output is one address per line in the order the addresses appear. Duplicates are kept; if you want them deduped, paste the result into remove duplicate lines afterwards. Need to validate or count the matches? Pipe the output into line counter.

How to use extract emails from text

  1. 1Paste your text into the input panel on the left.
  2. 2The output panel on the right shows every email address, one per line.
  3. 3Click Copy in the output header to copy the list.
  4. 4Click Download to save the matches as a plain-text file.
  5. 5Send the result to remove duplicate lines if you want unique addresses only.

Keyboard shortcuts

Drive TextResult without touching the mouse.

Shortcut Action
Ctrl FOpen the find & replace panel inside the input Plus
Ctrl ZUndo the last input change
Ctrl Shift ZRedo
Ctrl Shift EnterToggle fullscreen focus on the editor Plus
EscClose find & replace, or exit fullscreen
Ctrl KOpen the command palette to jump to any tool Plus
Ctrl SSave current workflow draft Plus
Ctrl PRun a saved workflow Plus

What counts as an email here

Local part: letters, digits, dot, plus, minus, underscore

The character class [\w.+-]+ covers A-Z a-z 0-9 _ plus ., + and -. So alice, alice.smith, alice+news and alice_01 all match before the @.

Domain part requires at least one dot

The pattern [\w-]+\.[\w.-]+ requires a host, a literal dot, then a TLD or sub-segments. Bare hosts without a dot (alice@localhost) are skipped. Multi-level domains like [email protected] are captured in full.

Plus-aliases preserved

[email protected] stays as [email protected]. The plus is part of the address; the matcher does not strip it. Useful when you are auditing campaign tags or filter rules.

Trailing punctuation is excluded

Because ,, ;, ), ], ? and ! are not in the domain character class, they break the match. So "write to [email protected]." gives [email protected] with the full stop dropped.

Order preserved, duplicates kept

Addresses appear in the order they were found. Duplicates are not removed; for a unique list pipe the output into remove duplicate lines.

Worked example

The trailing comma and full stop drop off, the plus-alias is preserved, and the duplicate [email protected] appears twice because no dedupe is applied.

Settings reference

Behaviour Effect on output
Local part characters Letters, digits, underscore, dot, plus, hyphen.
Domain part characters Letters, digits, dot, hyphen. At least one dot is required.
Plus-aliases Kept intact. [email protected] is a single match.
Trailing punctuation Dropped. "[email protected]," yields [email protected].
Bare hostnames Skipped. alice@localhost does not match (no dot).
Order and duplicates Matches appear in source order. Duplicates are kept.

FAQ

Is the matcher RFC 5322 compliant?
No, and most extractors are not. The pattern is the practical superset of addresses you see in real text: [email protected]. Edge cases like quoted local parts ("a b"@example.com) and IP-literal hosts are not matched. For everyday extraction from emails, signatures and CSVs, the pattern is more than enough.
Are duplicate addresses removed?
No. Every match is listed in the order it appears, including duplicates. Pipe the result into remove duplicate lines for a unique list.
Will obfuscated forms like "alice [at] example.com" match?
No. The pattern requires a literal @. To catch obfuscated forms, run find and replace first to normalise [at] back to @ (and [dot] to .), then extract.
Is anything sent to a server?
No. The match runs in your browser via JavaScript. Nothing is uploaded, nothing is logged, no record of your text exists on our servers.
How do I extract addresses from an HTML page?
Paste the HTML into extract text from HTML first to get plain text, then paste that result here. Tag-wrapped addresses like <a href="mailto:[email protected]"> still match directly though, because the matcher ignores surrounding tags.