Loading...
ivailo.hristov avatar ivailo.hristov 2 Точки

[Regular Expressions]Problem 5.Extract Emails

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

Имам проблем със задачата Extract Emails.
Това  ми е опита за разрешаване на проблема,но в джъдж ми дава 50/100 и не ми идва на акъл защо.Молбата ми е някой да ми каже защо става така общо взето.Благодаря предварително :)

Тагове:
1
Java Advanced
kosio197 avatar kosio197 104 Точки

Привет,

Това виждам аз:
1. Трябва да започва с white space.

2. [a-z0-9] - Може да съдържа и главни букви - A-Z

3. След @ не може да има цифри.

4. \\.[a-z]{2,3} - Tова 2,3 ще се отрази само на a-z, без точката. Освен това трябва да е минимум едно, но максимум няма т.е. трябва ти +

Ето един който работи:

"\\s(([0-9A-Za-z][\\.-0-9a-zA-Z]*[A-Za-z0-9])|([a-zA-z0-9]))@(([A-Za-z][-a-zA-Z]*[A-Za-z])|([A-Za-z]))(\\.(([A-Za-z][-a-zA-Z]*[A-Za-z])|([A-Za-z])))+";

 

1
LardaX avatar LardaX 15 Точки

Принципно тук [\\.-0-9a-zA-Z] няма ли да търси едновременно . и -? Тоест не трябва ли да се разделят с | ?

Моят вариант (не знам до колко е правилен, но judge го приема) е:
string pattern = @"\s([0-9A-Za-z]+(-*|_*|\.*)[0-9a-zA-Z]*@[a-z]+-*[a-z]*(\.[a-z]+)+\b)"

Друго, което исках да питам има ли друг вариант, който не почва мейла с white space? При мен също се получи само с него, но се чудех дали няма и друг начин, защото теоретично, ако изречението ти започва с мейла няма да го хване.

*Току що видях отговор на втория си въпрос в кода на колегата по-долу - ^|\\s - ако правилно разбирам това му казва, че или стринга трябва да започва с търсения от нас израз, или преди израза трябва да има разстояние, нали така?

0
20/10/2016 23:45:26
gimoch avatar gimoch 7 Точки

Здравейте,

http://pastebin.com/0GrJQFZc

получавам 75/100,предполагам,че защото хваща имейла ако пред него има примерно "-"(без него разбира се).Пробвах да го огранича слагайки "^" най-отпред,но не става.Някакви идеи как да го оправя ?
 

0
17/06/2016 22:31:33
gimoch avatar gimoch 7 Точки

Благодаря :)

 

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