почтовое регулярное выражение извлечения Java?

Я хотел бы регулярное выражение, которое извлечет адреса электронной почты из Строки (использующий регулярные выражения Java).

Это действительно работает.

7
задан EugeneP 12 February 2010 в 09:39
поделиться

2 ответа

Вот регулярное выражение, которое действительно работает. Я потратил час на серфинг в Интернете и тестирование различных подходов, и большинство из них не сработали, хотя Google вывел эти страницы на первое место.

Я хочу поделиться с вами работающим регулярным выражением:

[_A-Za-z0-9-]+(\\.[_A-Za-z0-9-]+)*@[A-Za-z0-9]+(\\.[A-Za-z0-9]+)*(\\.[A-Za-z]{2,})

Вот оригинальная ссылка: http://www.mkyong.com/regular-expressions/how-to-validate-email-address-with-regular-expression/

15
ответ дан 6 December 2019 в 08:14
поделиться

Установите этот плагин regex tester в eclipse, и у вас будет масса времени для тестирования regex
http://brosinski.com/regex/.

Обратите внимание:
В плагине для экранирования символов используется только один обратный слеш. Но когда вы переписываете regex в строку Java/C#, вам придется удвоить их, поскольку вы будете выполнять два экранирования, первое экранирование обратного слеша из механизма строк Java/C#, а второе для фактического механизма экранирования символов regex.

Окружите части regex, текст которых вы хотите захватить, круглыми скобками/эллипсами. Затем вы можете использовать групповые функции в Java или C# regex, чтобы узнать значения этих секций.

([_A-Za-z0-9-]+)(\.[_A-Za-z0-9-]+)@([A-Za-z0-9]+)(\.[A-Za-z0-9]+)

Например, используя приведенный выше regex, следующая строка

abc.efg@asdf.cde

дает

start=0, end=16
Group(0) = abc.efg@asdf.cde
Group(1) = abc
Group(2) = .efg
Group(3) = asdf
Group(4) = .cde

Группа 0 - это всегда захват всей совпавшей строки.

Если вы не заключите ни один раздел в многоточие, вы сможете только обнаружить совпадение, но не сможете захватить текст.

Создание нескольких regex может быть менее запутанным, чем создание одного длинного универсального regex, поскольку вы можете программно тестировать один за другим, а затем решить, какие regex должны быть объединены. Особенно когда вы обнаружите новый шаблон электронной почты, о котором раньше не задумывались.

3
ответ дан 6 December 2019 в 08:14
поделиться
Другие вопросы по тегам:

Похожие вопросы: