About extracting addresses from text
The input is never tidy. It is a forwarded email thread with forty addresses in the headers, a page of HTML, a log file, a CSV that someone exported badly, a chat export. The addresses are in there, surrounded by angle brackets and mailto: and full stops that belong to the sentence rather than to the address.
Paste it in and get a clean list out. Nothing is uploaded — the text never leaves your browser, which matters when it is a client list or an email thread.
It knows where an address ends
This is the part that separates a working extractor from a regular expression someone found online.
- A trailing . , ; : ) ] > " ' is punctuation, not part of the address. "Write to bob@example.com." yields bob@example.com, not an address with a full stop stuck on the end
- A closing bracket belongs to a URL only if that URL opened one. (see https://example.com/a) ends at the a, but https://en.wikipedia.org/wiki/Foo_(bar) keeps its bracket
- mailto: and angle brackets are envelope, not address, so they are stripped
- Phone numbers are length-bounded rather than shape-bounded — 7 to 15 digits, which is the real range of subscriber numbers worldwide. International formats vary too much to be strict without dropping real numbers
How to use it
- Paste the text, or load a file — including a spreadsheet, where the addresses are scattered across cells rather than sitting in one column
- Choose emails, links or phone numbers
- Leave Remove duplicates on unless you need the raw count. The same address forty times in a thread is one address
- Choose how they come out: one per line, comma-separated for pasting into a To: field, or semicolons for Outlook
- Copy the list, or download it as CSV
The count shows both numbers — how many were found and how many duplicates were collapsed — so nothing looks lost.
What people use it for
- Getting every address out of a forwarded thread to build a distribution list
- Pulling the links out of a page or a document to check them
- Extracting contact details from a scraped or exported blob of text
- Finding all the addresses buried in a spreadsheet with no consistent column
- Collecting phone numbers from a list of enquiries
- Checking whether a document contains addresses you did not expect before you share it
Good to know
- Works everywhere — it is a web page, so it runs on any phone, tablet or computer
- Nothing is uploaded. The text is searched entirely in your browser
- Lowercase is on for emails because the local part is case-insensitive in practice and Bob@ and bob@ are one address. It is skipped for phone numbers, where case has no meaning
- Loading a spreadsheet reads every sheet, so an address in a tab you forgot about is still found
- This is a text extractor, not a validator. It finds things that look like addresses; it does not check that they exist or that anyone reads them
- Please use the result responsibly. Collecting addresses from someone else's document to send unsolicited mail is unlawful in most countries under anti-spam and data protection rules
Related tools
- Find Text in Files — search a whole folder rather than one block of text
- Remove Duplicate Lines — clean up any list of text
- Sort List — reorder the result
- Regex Tester — build your own pattern for something this does not cover