Loading...
iliangrekov avatar iliangrekov 63 Точки

Относно задачата с email-ите. Tози regex го мъдрих 1 час. Във всички варианти , които тествах работи.

За целите на примерите е повече от добър, дори в много по-опростен вариант ще работи. Но просто за идеята 

\b[a-z0-9][a-z0-9-_\.]+\w+@[a-z\.-]*\.[a-z]{2,3} -> (вариант за regexr.com) 

\\b[a-z0-9][a-z0-9-_\\.]+\\w+@[a-z\\.-]*\\.[a-z]{2,3} -> директно в кода с ескейпинга


\b[a-z0-9] -> задължително да започва със малкa буква или цифра

nikola_nikola@nikola.nikola.nikolov.abv.bg

local частта  example@host.com от имейла е case sensitive по принцип, не не съм виждал някой да ползва големи букви, дори много email сървъри не поддържат upperCase и го конвертират в lowerCase.

[a-z0-9-_\.]+ ->  следвано от малки букви и/или цифри, тире, долна черта и точка(която сме ескейпнали с "\"),  по 1 или повече на брой 

nikola_nikola@nikola.nikola.nikolov.abv.bg

\w+ -> задължително да завършва с character (включва alphanumerical и underscore)  - така ще избегнем това nakov_-

@ -> да е следвано от кльомба

domain частта  example@host.com е винаги caseInsesitive т.е. неможе да имаме големи букви, освен ако не е някаква правописна грешка. И ако въведем @ServEr.coM -> автоматично става @server.com

[a-z\.-]* -> да е следванo от малки букви и/или точка 0 или повече на брой

nikola_nikola@nikola.nikola.nikolov.abv.bg

\.[a-z]{2,3} -> да следва точка, следвана от 2 или 3 букви (примерно    .com  .bg)  

nikola_nikola@nikola.nikola.nikolov.abv.bg

Единственото, което забелязах и не знам как се прави е  да се селектира само, ако има по 1 точка,

опитах с  [\.?] също и със [\.]{1}, но не става.

j.hopkin . . 64545@york.ac . . . . ud

Не претендирам, че в реалността има такъв имейл, целта ми е просто да си тренирам regex-a 

 

2
05/02/2015 18:55:56
Filkolev avatar Filkolev 4482 Точки

"Единственото, което забелязах и не знам как се прави е  да се селектира само, ако има по 1 точка, опитах с  [\.?] също и със [\.]{1}, но не става."

Може ли да обясниш по-подробно какво искаш да направиш точно, за да те насоча?

0
iliangrekov avatar iliangrekov 63 Точки

Как да включа в условието на regex-a нещо което искам да се среща само 1 път като последователност, но 0 или повече  пъти като цяло? Например

ivan.ivanov...ivanov@host..bg.com  

да не го хвана, но

ivan.ivanov.ivanov@host.bg.com  

това да.

Благодаря!

0
06/02/2015 16:11:35
Filkolev avatar Filkolev 4482 Точки

Това върши работа, но трябва да си го модифицираш според твоите нужди:

\b[a-zA-Z]+(\.?[a-zA-Z]+)+@([a-zA-Z]+\.)+[a-zA-Z]+\b

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

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