Extract phone numbers
Finds phone numbers in any text and lists them, one per line.
Paste anything — an email thread, a scraped page, a contact list, a chat export — and press the button. Phone numbers are pulled out and listed one per line, with duplicates removed automatically.
What it recognises
Phone numbers have no single format, which is why extracting them is harder than extracting emails. The pattern here accepts an optional country code with or without a plus sign, an optional area code in brackets, and groups of digits separated by spaces, dots or dashes. So all of these are found:
+44 20 7946 0958(212) 555-0142212.555.0142+7 495 123-45-670800 123 4567
A minimum of seven digits is required. That threshold is deliberate: without it, every year, price and reference number in the text comes back as a phone number, which makes the output useless. Seven digits is the shortest real subscriber number in common use.
What it will get wrong
Being honest about this matters more than pretending otherwise, because you are going to paste the result into something. Any long digit sequence with separators can look like a phone number: order references, IBANs, tracking codes, some dates written with dots. Conversely, a number written in an unusual way — extensions after "ext.", digits spelled out as words, or a format specific to one country — may be missed or truncated.
Treat the output as a first pass that saves you the reading, not as validated data. Scan the list before using it. If you need certainty about whether a number is dialable, that requires a library with a per-country rule set, not a pattern — and no browser tool will give you that.
Uses
- Building a contact list from an email thread or a set of signatures.
- Auditing a document for personal data before you share it.
- Cleaning a scraped page where the numbers are buried in markup and prose.
- Migrating records out of a free-text notes field into a structured one.
- Checking a form export where people typed numbers in six different formats.
If you want every number rather than only phone-shaped ones, the second button uses the general number extractor, which also totals them. For addresses in the same text, the email extractor is the companion tool.
A word about privacy
Phone numbers are personal data in most jurisdictions, including under the GDPR. Everything on this page runs in your browser — the text is never sent to a server, never logged and never stored — which is the main reason to prefer a client-side tool for this particular job over one that posts your text somewhere. What you do with the extracted list afterwards is still your responsibility.
Doing it without this tool
Excel: no reasonable way. Phone numbers vary too much for FIND-based formulas, and Excel also
mangles numbers starting with a plus or a zero the moment they land in a cell.
Word: Find with wildcards can locate a fixed pattern such as ([0-9]{3}) [0-9]{3}-[0-9]{4}, but
you need one pattern per format and it cannot list the matches.
Command line:
grep -oE '\+?[0-9][0-9 ().-]{7,}[0-9]' file.txt gets close and needs tuning for your data.
Python: the phonenumbers library is the correct answer if you need validated, formatted results
with country detection. It is a real dependency for a real job — worth it when the data matters.
Runs entirely in your browser. Your text is never uploaded — open DevTools, Network tab, and you will see zero requests while you use this tool.
How to use it
- Paste your text into the box.
- Press "Extract phone numbers".
- Scan the list — long reference numbers can look like phone numbers and may need removing by hand.
- Copy the list or download it as a .txt file.
Related tools
Frequently asked questions
International numbers with or without a plus sign, area codes in brackets, and digits grouped with spaces, dots or dashes. A number must contain at least seven digits to be counted.
Because any long digit sequence with separators can look like one — order references and tracking codes in particular. The seven-digit minimum filters out years and prices, but the result is still a first pass you should scan rather than validated data.
Yes, each distinct number appears once, in the order it first occurs.
No. Everything runs in your browser, which matters here because phone numbers are personal data under the GDPR and similar laws.
No. Validation needs per-country numbering rules, which is a job for a library like phonenumbers rather than a pattern match.