Loading...
lapd87 avatar lapd87 103 Точки

[EXERCISE] String Processing - Problem {16} - Extract Hyperlinks

Привет колеги,

ако може малко помощ :)

улесних леко нещата с този код https://pastebin.com/cR5DW3p5

сега остана да извадя линковете от списък с атрибути

<a   href="/"  id="home">Home</a>
<a class="selected" href=/courses>Courses</a>
<a href = '/forum' >Forum</a>
<a class="href"onclick="go()" href= "#">Forum</a>
<a id="js" href ="javascript:alert('hi yo')" class="new">click</a>
<a id='nakov' href =http://www.nakov.com class='new'>nak</a>
<a href="#empty"></a>
<a href="#">&lt;a href='hello'&gt;</a>
<a href="#commented">commentex hyperlink</a>

мъчих с нещо такова

.+?href[\s]*?=[\s]*(["']*)(.+?)\1[^=]+>

но не ми се получава с кавичките... 

0
Java Advanced
k.sevov avatar k.sevov 1077 Точки

Това решение измислих днеска ако ще ти свърши някаква работа. Довечера след лекцията мога да погледна по-сериозно защо не става с твоя регекс.

Edit: Не виждам някаква лесна корекция, която да оправи регекса честно казано. Пробвах се и аз първо да използвам група за кавичките и с backreference, но не намерих как да се комбинира ефективно със случаите без никакви кавички - или едното се чупи, или другото. 

2
31/05/2018 23:40:57
lapd87 avatar lapd87 103 Точки

и аз това се чудех има ли начин ако няма кавички след това да не търси, ако има единични да спре при първите единични, ако са двойни при първите двойни...

0
lapd87 avatar lapd87 103 Точки

с твоя регекс и моето решение до момента направих това https://pastebin.com/5yRhPz3Z обаче с грешни тестове 3,5,6. 

Някакви идеи какво пропускам?

0
k.sevov avatar k.sevov 1077 Точки

Не работи правилно за случаите на някакви нестнати тагове в <a> тага, може би нещо такова има в тестовете. Проверката със сплита ще ги изкарва невалидни.

1
01/06/2018 09:37:36
lapd87 avatar lapd87 103 Точки

мда... можеше да се сетя :D

след като махнах сплита ми остана 6ти тест грешен...

0
01/06/2018 10:21:34
k.sevov avatar k.sevov 1077 Точки

Ако махнеш само сплита мисля остава проблем ако примерно нямаш href в <a>, но имаш такъв в някой нестнат таг (който не е <а>) - регекса ще го хване и изпечата. 

1
lapd87 avatar lapd87 103 Точки

е то така вече се обезмисля идеята да не ползвам голям и нечетим регекс :)

Мерси колега оправих го вече, както ти си го направил.

0
stoiko.bogev avatar stoiko.bogev 78 Точки

Това е регекс на мое решение: <a.+?href\\s*=\\s*(.+?)\\s*>.+?</a>

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