Loading...

Във форума е въведено ограничение, което позволява на потребителите единствено да разглеждат публикуваните въпроси.

EyubDjelil avatar EyubDjelil 9 Точки

Text Processing and Regex API - Extract Emails

Здравейте колеги,

видях много предложения за regex решения на тази задача , но за съжаление всички до един бяха грешни. 

Затова и питам тук тъкмо и трейнърите биха ни помогнали тъй като regex материята е труден - поне за мен а от видяното съдя и за останалите.

Какъв би бил коректния regex. 

Условието е следното : 

Write a program to extract all email addresses from given text. The text comes at the first input line. Print the emails in the output, each at a separate line. Emails are considered to be in format <user>@<host>, where:

  • <user> is a sequence of letters and digits, where '.', '-' and '_' can appear between them. Examples of valid users: "stephan", "mike03", "s.johnson", "st_steward", "softuni-bulgaria", "12345". Examples of invalid users: ''--123", ".....", "nakov_-", "_steve", ".info".
  • <host> is a sequence of at least two words, separated by dots '.'. Each word is sequence of letters and can have hyphens '-' between the letters. Examples of hosts: "softuni.bg", "software-university.com", "intoprogramming.info", "mail.softuni.org". Examples of invalid hosts: "helloworld", ".unknown.soft.", "invalid-host-", "invalid-".
  • Example of valid emails: info@softuni-bulgaria.org, kiki@hotmail.co.uk, no-reply@github.com, s.peterson@mail.uu.net, info-bg@software-university.software.academy.

 

Лично аз измъдрих това като решение , но се съмнявам да е вярно: 

[a-zA-Z0-9]+[\.\-\_]*[a-zA-Z0-9]+@[a-zA-Z]+[\-]*[a-zA-Z]+.[a-zA-Z]+

очаквам кртитики , предложения, съвети. 

1
Fundamentals Module 10/04/2016 09:50:30
ArmenPotourlyan+deleted! avatar ArmenPotourlyan+deleted! 488 Точки

Аз не мога да ти напиша Regex израза на Java - не съм наясно с особеностите на регулярните изрази специално за този език. Но бих те посъветвал да си избереш един от многото test-ъри на Regex в нета, за да си проверяваш бързо изразите.

 

Например, като пуснах израза, който си дал в http://www.regexplanet.com/advanced/java/index.html като невалидни email-и дава:

s.peterson@mail.uu.net

info-bg@software-university.software.academy

kiki@hotmail.co.uk

Тоест не си предвидил в този израз, че в <host> може да има повече от една точка, която да свързва думи.

0
10/04/2016 10:19:41
EyubDjelil avatar EyubDjelil 9 Точки

Правилно , мерси продължавам с опитите :)

Ето плодът на опитите ми : 

[a-zA-Z0-9]+[\.\-\_]*[a-zA-Z0-9]+@([a-zA-Z]+[\-]*[a-zA-Z]+\.)+[a-zA-Z]+

Това май е по-добре :

([a-zA-Z0-9]+[\.\-\_]*[a-zA-Z0-9]+)+@([a-zA-Z]+[\-]*[a-zA-Z]+\.){1,2}[a-zA-Z]+

 

0
10/04/2016 11:30:56
boucheron avatar boucheron 4 Точки

Какъв би бил коректния regex.

"[A-Z0-9]+([.-_]?[A-Z0-9]+)+@[A-Z]+[-]?[A-Z]+(\\.[A-Z]+[-]?[A-Z]+)+", Pattern.CASE_INSENSITIVE

 

0
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.