Cadmeo

Text Extractor

Paste anything, a web page, an email thread, a spreadsheet column.

2
Found
2
Unique
0
Duplicates
Extracted

sales@example.com press@example.org

The text extractor pulls one kind of thing out of a block of text: email addresses, numbers, @mentions, URLs or #hashtags. For emails it can also reverse the common obfuscation of writing "name [at] example [dot] com", which is how addresses are published to defeat naive scrapers.

How it works

Each mode uses a pattern tuned for what that thing actually looks like in real text rather than for formal correctness.

  • Emails: permissive on the part before the @, strict on the domain. Real addresses contain plus signs, dots and hyphens far more often than they are genuinely malformed.
  • Numbers: matches negatives and values containing separators, so 1,250.00 comes out as one number rather than three.
  • Mentions and hashtags: require a non-word character before the @ or #, so an email address is not misread as a mention.
  • URLs: http and https only, stopping at whitespace or a quote.

Duplicates are removed by default, and the count of both raw and unique matches is shown. The gap is often the useful number when auditing a page or a thread.

Examples

Emails including an obfuscated one

Text

Contact sales@example.com or press [at] example [dot] org.

Deobfuscate

On

Result

sales@example.com
press@example.org

The bracketed form is converted before matching. With deobfuscation off, only the first address is found.

Mentions, not email addresses

Text

Ask @cadmeo or email hi@example.com

Extract

@mentions

Result

@cadmeo

The pattern requires a non-word character before the @, so the domain part of an email is not picked up as a mention.

Numbers with separators

Text

Invoice 1,250.00 due in 30 days

Extract

Numbers

Result

1,250.00
30

Separators are kept inside the match, so the invoice total stays one number. A simpler digit pattern would return 1, 250, 00 and 30.

Frequently asked questions

Why does it find addresses written as "name [at] example [dot] com"?

Because that is how addresses are published on the web to defeat simple scrapers, and reversing it is often exactly what someone extracting from a page they own needs. It is opt-in, so it can be turned off when you want only genuine addresses.

Does it validate that an email address actually exists?

No. It matches things shaped like addresses. Whether an address is deliverable can only be established by sending to it. No pattern, however strict, can tell you that.

Why is an email address not counted as a mention?

Because the mention pattern requires a non-word character immediately before the @. Without that rule, hi@example.com would yield a mention of @example, which is almost never what you want.

Should I use this to build a mailing list?

Extracting addresses from a page does not give you permission to email them. Under GDPR and similar laws, scraping addresses and sending unsolicited mail is unlawful regardless of how the addresses were obtained.