Добрый день, предлагаю ряд изменений. 1. Ввести ограничение на длинну локальную части (до что до @) 1-64 символа. 2. Ввести ограничение на длину доменной части (то, что после @) до 255 символов. Эти требования описаны в RFC 3. Хоть RFC и допускает, но по факту крайне редко встречаются email, где присутстует символ "%". Предлагаю его убрать из регулярки. Собирается из-за него как правило, только хлам. Пример: 22%7d%2c%7b%22id%22%3a%22667090253470645_667090666803937%22%2c%22created_time%22%3a%222017-03-06t20%3a51%3a49.000z%22%2c%22status_type%22%3a%22cover_photo%22%2c%22message%22%3a%22%22%7d%5d%7d%2c%22syncedat%22%3a%222020-02-01t21%3a33%3a44.506z%22%7d%2c%22email%22%3a%[email protected]|http://1018design.no 4. Добавить в паттерн имейл разделить @ = {at} {a} [a] [at] (a) (at) + в верхнем регистре {A} {AT}..., и разрешить до 3х пробельных символа до\перед\внутри ними. И соотвественно сразу конвертировать его в @ в результатах. Около 1-2% добавляется (тестировал HTML::TextExtractor). Примеры: info{at}vanessaminique.be|https://vanessaminique.be/contact/ kris.medart(at)telenet.be|https://veg-deburg.be/contact/ contact (at) ventsdusud.be|https://ventsdusud.be/contact info {at} virginielobet.be|https://virginielobet.be/contact/ lalunechezviolette (a) gmail.com|https://www.lalunechezviolette.be/contact/ info[at]landschapsbeleving.be|https://www.landschapsbeleving.be/contact [email protected]|https://www.landmetingenartois.be/contact/ info( at)landschapstuinen.be|https://www.landschapstuinen.be/contact pat ( at) ttl-technics.be|https://www.ttl-technics.be/contact/ 5. Добавить ограничение на окончание имейла. Очень редко, но попадаются "email" типо [email protected] [email protected] [email protected] В целом регулярка выглядит примерно так: (\b[A-Za-z0-9._+-]{1,64}?(@|\s{0,3}([({\[]\s{0,3}(at|a|A|AT)\s{0,3}[\]})])\s{0,3})[A-Za-z0-9.-]{1,255}\.(?!(svg|webp|jpg|png|gif|jpeg|bmp|js|css|html|htm|pjpeg|ico))[A-Za-z]{2,6}\b)
Пункты 1,2,4 реализованы. Пункт 3 - оставлен как есть, для большего соответствия стандартам. Если требуется отфильтровывать адреса с %, можно воспользоваться фильтром. Пункт 5 - часть расширений уже проверялась в парсере, расширили список.