Loading...

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

Filkolev avatar Filkolev 4482 Точки

Задачите вече може да се тестват и на C#.

Използвайте темата за обсъждане на домашното от лекцията. Не е проблем за някои задачи да има отделни теми. Но така и така името на темата предполага - нека тук да стават дискусиите по него като цяло.

1
Peter.Tonev avatar Peter.Tonev 2 Точки

Здравейте,

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

Въпроса ми е относно задача 6-та - Extract Hyperlinks. Използвам следният regex: (?:<[aA][^<>]*\s+href\s*=\s*([\w:;\/.\(\)\?\&#]+(?:'[^']*'|"[^"]*")*[\w:\/.\(\)\;?\&]+))*(?:<[aA][^<>]*\s+href\s*=\s*"([^"]*)")*(?:<[aA][^<>]*\s+href\s*=\s*'([^']*)')*

В сайта за тестване мачва безпроблемно всички примери, но в програмата не работи (ескейпнах кавичките, но въпреки това не работи..)

Дали може да споделите от къде може да е проблема?

0
Filkolev avatar Filkolev 4482 Точки

В какъв смисъл не работи?

0
Peter.Tonev avatar Peter.Tonev 2 Точки

Ами не ми дава верен резултат при теста в judge :)

0
EBojilova avatar EBojilova 330 Точки

Поствам решенията от домашното. https://github.com/EBojilova/04.RegularExpressions

Да си призная, честно това ми е най-трудното домашно до момента :)

Шеста я тормозих цял ден до 33 точки и накрая в екип с Катя Маринчева я докарахме до 100. Но на изпита абсурд да реша такава задача.

Всякакви коментари са добре дошли.

15
16/05/2015 22:39:01
Filkolev avatar Filkolev 4482 Точки

За успокоение - чак такива извращения нямаме намерение да даваме на изпита ви. Нещо доста по-просто ще е.

Но за да разберете нещата трябва да се мъчите с по-трудни задачи (които умишлено ви даваме) и е силно препоръчително да си помагате и да питате на място или във форума. Това, че си решила задачата с помощ е супер; не е важно дали сама си я преборила, а дали в процеса си научила по-добре как работят регулярните изрази. Ако да - задачата е изпълнила целта си поне за теб.

5
KatyaMarincheva avatar KatyaMarincheva 572 Точки

А сега истината, Ели реши сама задачата, аз махнах един спейс, и смених една двойна кавичка с единична в regex-a, и решението даде 83 точки, накрая Ели написа едно заклинание на клинописно писмо (днес смятам да разшифровам какво точно е написала ;) ) и judge даде 100 точки.

Екипно, Ели 99 judge точки плюс Катя 1 judge точка. Браво на Ели :)

А относно точките във форума - това вече се превърна в пълен цирк - всеки който успее да си реши задачите получава комплект минуси :) Някой е минал и е минус-нал Ели систематично (аз бях дала точки, та знам къде Бяха, а сега където бяха, и в този пост включително, има нулички :)

Още един също толкова цирков пример:D.Kostadinov (Точки: 5) 14/05/2015 02:52:00

https://softuni.bg/forum/4197/Homework-Advanced-CSharp-Strings-and-Text-Processing

Добромир е постнал невероятно хубаво домашно, аз съм писала просто за да изкажа възхищението си, радвам се че познавам толкова умен човек  - той има 1 точка за задачите, аз 5 за коментара - поредната шега, показваща че точки и ценност на поста вече ще бъдат две диаметрално противоположни понятия :)

 Вече минус във форума официално ще го считаме за "потвърдено вярна, полезна и навременно предоставена информация" :))))))

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

8
16/05/2015 08:26:16
EBojilova avatar EBojilova 330 Точки

Ми точно твойте "мънички" поправки ме изкараха от while(true)  и дадоха break на лутането ми :))) A за да ги направиш, си разбирш регексите.

Отностно точките, нямаше и да забележа. На ниво 0 не съм писала, тъй като имаше много стари теми за домашните, от които аз се учих и знам, че ми бяха много полезни. Тъй като сме по нова програма и ние сме пионерите, е много полезно за доста хора, да публикуваме, тъй че ако можем и имаме сили действаме :) Ако изостана назад(работя все пак) ще гледам от вас, така че не спирайте да публикувате теми.

1
16/05/2015 22:35:56
aanguelov avatar aanguelov 219 Точки

Четвърта и пета задачи от мен:

04.SentenceExtractor - https://gist.github.com/aanguelov/46fcb4ca787e8653cbc7

05.ValidUsernames - https://gist.github.com/aanguelov/ab9c1d4c00da9130a686 - тук judge ми дава 80/100, но снощи до късно я писах и не можах да я оправя.

Тук слагам линк към темата за екстрактване на имейли за да я видят повече хора, щото ми изтекоха очите по тамошния патерн и така и не стигнах до напълно работещо решение - https://softuni.bg/forum/4227/Homework-CSharp-Advanced-Regular-Expressions-Problem-3-Extract-Emails

 

2
16/05/2015 10:27:44
KatyaMarincheva avatar KatyaMarincheva 572 Точки

Здравей Алекс,

Първо, решението ти на 5-та задача Valid Usernames е мнооого умно направено!

Конкретно, някои judge тестове ти гърмяха заради regex-a: [\w{3,25}]+.

/w - хваща само един символ от вида a-zA-Z0-9_

{3,25} - би трябвало да match-не 3-25 символи от горните видове, но то търси друго, иска да match-не точно същия символ, с който започва username-а 3-25 пъти, а не който и да е от тези a-zA-Z0-9_, и [\w{3,25}] match-ва отново единичен символ (освен ако не напишем само еднакви символи "аааааааа"), тъй че в случая не работи.

[\w{3,25}]+. а това вече match-ва докато има символи от вида a-zA-Z0-9_, от 0 до безкрайност, и така match-ва например "двадесетипетдвадесетипетдвадесетипетдвадесетипетдвадесетипетдвадесетипетдвадесетипетдвадесетипет" цялото, а не би трябвало, защото е над 25 символа дълго.

Аз промених regex-a ти на това: \w{3,25}

Този подход е слабоефективен - разликата е, че \w ще провери дали символът е от вида a-zA-Z0-9_, а после {3,25} проверява дали има общо 3 до 25 броя последователни символи от който и да било от вида a-zA-Z0-9_

Недостатък, от този username: "двадесетипетдвадесетипетдвадесетипетдвадесетипетдвадесетипетдвадесетипетдвадесетипетдвадесетипет" си реже първите 25 знака и изобщо не отчита че общата дължина е по-голяма.

После погледнах какво Ели е използвала за regex, и оттам добавих \b в началото и в края на regex-a. Получи се \b\w{3,25}\b, което е нещо средно между твоя regex и този на Ели, и дава 100 точки в judge.

 

 

1
16/05/2015 15:49:20
aanguelov avatar aanguelov 219 Точки

Катя, много благодаря за подробното обяснение, сега сядам да я оправя.

1
nstanevski avatar nstanevski 37 Точки

Здравейте,

в задача №8, "Use Your Chains, Buddy" вторият тест е по-дълъг от стандартната дължина на конзолния ред и се отрязва. Моето решение на проблема: в началото на Main() поставих:

Console.SetIn(new StreamReader(Console.OpenStandardInput(8192)));

което изисква и добавянето на namespace System.IO в началото на файла:

using System.IO;

А ето и моите решения. Джъджа ми дава 88/100 на зад. 8 (Use Your Chains), другите са 100.

Надявам се да съм бил полезен.

 

4
16/05/2015 22:36:10
pataroka avatar pataroka 319 Точки

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

2
EBojilova avatar EBojilova 330 Точки

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

08. https://github.com/EBojilova/04.RegularExpressions/blob/master/08.UseYourChainsBuddy/UseYourChainsBuddy.cs

1
cap7ainjack avatar cap7ainjack 20 Точки

Е не, от 2 дни се чудя защо тази задача на върви... 

То каква била работата.

 

Благодря! Нямах предсвата за това

0
pataroka avatar pataroka 319 Точки

Ами ето ги всички решения: 04.Advanced-CSharp-Regular-Expressions-Homework

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

Не ща да виждам регекси поне до изпита... А ако може и половин година след това...

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

П.П. Мисля, да пропусна бонус точките от проверка на това домашно laugh

3
16/05/2015 23:53:15
EBojilova avatar EBojilova 330 Точки

И аз я преборих. Доста по-лесна от предишната. Решенията са ни почти еднакви :)

https://github.com/EBojilova/04.RegularExpressions/blob/master/07.QueryMess/QueryMess.cs

1
pataroka avatar pataroka 319 Точки

Много ме кефят твоите решения с MatchCollection класа. Аз така и не се научих да го ползвам и си рендосвам с единичния...

1
EBojilova avatar EBojilova 330 Точки

Как ги правиш да изглеждата цветни тези патерни, имаш всички цветове-оранжево, зелено, т.н. а моите са само бордо.

Гледах, чудих се и не разбрах кви ги вършиш :)))

0
KatyaMarincheva avatar KatyaMarincheva 572 Точки

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

От мен първо една малко по-особена втора задача Replace <a> Tag  - по втората опция от условието на задачата (с извикване на инпута от файл) - извиквам source-а на страницата на форума на СофтУни (записала съм част от него в .txt файл), и после правя замените на <a href... с [URL...., и промененият source записвам в нов txt файл, който после извиквам за да го печатам на конзолата. На този линк може да се види кода, а от този линк може да се свали zip folder съдържащ и този проект - за да се тества програмата с input file-a.

Идеята е, че файлът който се извиква, трябва да е на компютъра на този който тества програмата, в папката с ,cs файла на самия проект - за тестване може да се създаде и друг txt файл, който да save-не в съответната папка.

Ели ми помогна с regex-a  защото този който аз бях съставила първоначално match-ваше идеално на regex101.com, но във Visual Studio даваше 0 matches....

Edit: И още едно по-собено решение - на Problem 3 - Extract Emails - понеже в примерите от задачата output-а е даден в italic - програмата ми създава html файл с резултатите и после го извиква за да се изпишат резултатите в italic.

И Problem 4 - Sentence-Extractor

0
22/06/2015 14:15:38
Innos avatar Innos 419 Точки

Аз имам следния въпрос, понеже 6та задача я въртях и суках по всякакви възможни начини и не можах да измисля 1 регекс който сам да задоволява условието. Има ли задачата решение в което не се ровим в групите на Match-а, иначе казано съществува ли рекегс които да върне като match-ове единствено и само търсените отговори и да е валиден за всички тестове.

1
pataroka avatar pataroka 319 Точки

Ами вероятно да... Моят е дълъг около 60 символа, но го докарах дотам освен резултата, да ми вкарва и празни ентрита в групите, което ме задоволи напълно... Предполагам, че с малко повече играчка, може и да се стигне до нещо смислено...

1
Innos avatar Innos 419 Точки

Празните групи са от OR-а защото само 1 от групите ще върне стойност другите ще останат празни. Имах идея да пробвам със backreference за да избегна OR-овете, но просто има резултати който правят този вариант невъзможен.

1
17/05/2015 02:52:37
Filkolev avatar Filkolev 4482 Точки

Може да ползваш група, която да обхваща трите условия и след това да тримнеш ако има кавички, но като цяло магически регекс няма. Не винаги всичко може да се направи с регекс.

0
LoKSET avatar LoKSET 160 Точки

Само да спомена нещо, което ми коства известно време, докато разбера. Повечето може и вече да са се усетили, но все пак...

Когато foreach-вам MatchCollection учудващо не ми излизаха правилните properties на елемента на който съм. Конкретно Groups пропъртито. Ами понеже съм мързелив винаги оставям var във foreach-a, а не правилният тип. Почти винаги това работи ок, но не и при Match класа - тогава var автоматично се разпознава като object и нормално липсват доста неща, които може да се очаква да са там.

1
17/05/2015 16:34:06
enevlogiev avatar enevlogiev 1168 Точки

Прав си, аз също го знам от вчера : ) Напоследък преоткривам C#. Ще споделя какво прочетох в интернет. Ако държиш да използваш var във foreach:

foreach (var match in matches.Cast<Match>())

ще работи окей. Според мен Match match in matches е по-четимо в случая.

0
LoKSET avatar LoKSET 160 Точки

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

0
enevlogiev avatar enevlogiev 1168 Точки

Както ти е удобно. Така и така през целия Front End модул само var ще използвате 6 месеца. Радвай се на експлицитните типове, докато можеш : ) Когато променливите са именувани правилно, няма шанс от объркване.

Пробвай се да познаеш типа на следващите  ->

var firstName;
var age;
var isClickable;

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