2016-02-25 4 views
0

У меня есть ниже набор образцов emailidsРегулярное выражение для исключения численные emailids

EmailAddress 
1123 
123.123 
123_123 
[email protected] 
[email protected] 
[email protected] 
[email protected] 
[email protected] 
[email protected] 
[email protected] 

Необходимо устранить mailids, если они содержат сплошь numericals до @

Expected output: 
[email protected] 
[email protected] 
[email protected] 
[email protected] 

Я использовал ниже Java Rex. Но его устранение всего. У меня есть основные знания в написании этих выражений. Пожалуйста, помогите мне в исправлении ниже. Заранее спасибо.

[^0-9]*@.* 

ответ

1

Вы имеете в виду что-то вроде этого? (.*[a-zA-Z].*[@]\w*\.\w*)

пробоя
.* = 0 или более символов
[a-zA-Z] = один письмо
.* = 0 или более символов
@
\w*\.\w* бесконечные времена A-Za-z0-9 с одним.между

таким образом, у вас есть электронная почта, которая содержит по крайней мере одну букву
увидеть тест на https://regex101.com/r/qV1bU4/3

отредактированной, как предполагают, по CCF с обновленным пробое

+1

Регулярное выражение работает в сценарии OP. Но если электронные письма содержат (.) Или (-), ваше регулярное выражение не будет работать. например, электронные письма: [email protected] или [email protected] В этом случае следует использовать: '(. * [A-zA-Z]. * @ \ W *. \ W *)'. – Quinn

+0

@ccf это выражение работало, как ожидалось. Большое спасибо. Не могли бы вы объяснить это выражение. – Gokul

+0

@Gokul: точка (.) Соответствует любому одиночному символу, кроме новой строки. Проверьте это: https://regex101.com/r/oO6oP6/2. – Quinn

0

Попробуйте это:

[^\d\s].*@.+

это будет соответствовать электронные письма, которые имеют по крайней мере одну букву или символ перед @ знаком.

+0

Спасибо. Это выражение отмечает все как недопустимое – Gokul

1

Следующее регулярное выражение позволяет только по электронной почте адреса пасса, которые отвечают вашей спецификация:

(?m)^.*[^[email protected]\r\n].*@ 

Обратите внимание, что вы должны определить соответствие многострочных (m флага Смотрите демы Решение использует синтаксис встроенного флага.. m. Вы также можете позвонить Pattern.compile с аргументом Pattern.MULTILINE.).

Демо-версия: regex101.

Объяснения

Стратегия: Определить в основном звук адрес электронной почты в качестве одной строки строки, содержащей @, исключить строго числовые префиксы.

  • ^: старт-линии якорной
  • @: принципиально звук адрес электронной почты должен соответствовать по-знаку
  • [^...]: перед знаком, один символ должен быть ни цифрой, ни CR/LF. @ также включен, знак, не содержащий цифр, не должен быть первым знаком at!
  • .*: до и после проверки без цифр, произвольные строки разрешены (ну, на самом деле это не так, но верно синтаксическая валидация адреса электронной почты, вероятно, не может быть здесь и не обязательно должна быть регулярной по соображениям надежности и надежности кода). Строки должны быть представлены в шаблоне, потому что шаблон привязан.
+0

Благодарим за быстрый ответ. Это выражение помечено всем недействительным – Gokul

+1

Вы проверили демо-версию с обновленной версией? – collapsar

+0

да, я устал обновленный. Тем не менее его маркировка недействительна. Я использую этот exp на java-движке. Инструмент Pentaho ETL. – Gokul

Смежные вопросы