Extract email addresses from text

Hello everyone!
Does anyone have a script (or know how to create one) that extracts email addresses from a text string?
(With similar function as this website: http://www.procato.com/mailextract/)
Thanks in advance! Gustav

1 件のコメント

Steven Lord
Steven Lord 2017 年 6 月 9 日
It's likely more complicated than you think. See for example this Microsoft blog and this Stack Overflow question. One of the answers on the Stack Overflow page links to a (five year old) page giving a regular expression that I suspect you could use with the regular expression functionality in MATLAB.

サインインしてコメントする。

回答 (2 件)

Stephen23
Stephen23 2017 年 6 月 8 日
編集済み: Stephen23 2021 年 6 月 2 日

0 投票

Take MATLAB's own Regular Expressions example:
email = '[a-z_]+@[a-z]+\.(com|net)';
and adapt it to allow any domain, or whatever other requirements you have:
rgx = '[a-z0-9_]+@[a-z0-9]+(\.[a-z0-9]+)+';
C = regexpi(txt,rgx,'match');
For a slightly stricter version, you can find many regular expressions on the internet, e.g.:
rgx = '[a-z0-9._%+-]+@[a-z0-9-]+(\.[a-z0-9-]+)+'
While this simple regular expression works for simple email adresses, it is worth noting that the complete rules for checking valid email adresses are not trivial to implement with a regular expression:
A common mistake (including by this answer) is to exclude non-latin characters.

2 件のコメント

Gustav Essunger
Gustav Essunger 2017 年 6 月 9 日
Thank you very much!!
Adam Danz
Adam Danz 2021 年 6 月 2 日
Don't forget Mailojis! 😁

サインインしてコメントする。

oliver
oliver 2019 年 2 月 15 日
編集済み: oliver 2019 年 2 月 15 日

0 投票

I think the above examples will miss quite a lot of emails, like all those containing a capital letter or things like: Peter.O'Toole@xyz.com. So my suggestion would be something like:
reg='[a-zA-Z0-9._%''+-]+@([a-zA-Z0-9._-])+\.([a-zA-Z]{2,4})';
Although with the wide variety of new TLDs nowadays, limiting the last character group to 2-4 letters may be obsolete (depending on your needs).

1 件のコメント

Daniele Lupo
Daniele Lupo 2021 年 6 月 2 日
This regexp validates an invalid mail with consecutive dots, like "my.email@email...com".

サインインしてコメントする。

カテゴリ

ヘルプ センター および File ExchangeStartup and Shutdown についてさらに検索

質問済み:

2017 年 6 月 8 日

コメント済み:

2021 年 6 月 2 日

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by