Loading...
DonchoPatronski avatar DonchoPatronski 35 Точки

Regular Expressions -> 04. Replace a tag. Малко помощ

На тази задача според примера стигнах до извода, че трябва да използвам StringBuilder за да добавям входните стрингове в един стринг и да махна всички white spaces. След това използвам един Replace и май това е lambda expression. Съмнявам се, че не съм го направил по най-гъзарския начин, имам 66точки. Ако може да ми кажете и начин без Lambda... т.е. с текущия материал

https://gist.github.com/Patronski/cf180f34b3a65b0728aee349a1d88c44

0
C# Advanced 05/06/2016 15:07:02
kaloyannikov avatar kaloyannikov 531 Точки

Мисля ,че не е нужно да махаш whitespace-ове . Единствено трябва да replace-неш отварящия и затварящия таг.

0
05/06/2016 16:53:39
DonchoPatronski avatar DonchoPatronski 35 Точки

Прав си и без да махам whitespace-овете минах първите 2 теста. Но нулевия и третия не мога.

0
kaloyannikov avatar kaloyannikov 531 Точки

<a(href=.*?)>(.*?)<\/a> това ти е регекса , обаче не виждам смисъл да capture-ваш контента . на теб единствено ти трябва <a и </а>, другото не те интересува.

така че може да си направиш групите да хващат тях демек (<a)\s*href=.*?>.*?(<\/a>).

 

0
DonchoPatronski avatar DonchoPatronski 35 Точки

input = Regex.Replace(fromSB, pattern, m => "[URL " + m.Groups[1].Value + "]" + m.Groups[2].Value + "[/URL]");

Реплейсвам целия контент. Лепя URL както се изисква и от групите добавям старата част. Търся си в интернет как да реплейсвам само двете URL и скобичката в средата, но вече 6 часа не мога да се оправя.


Като цяло преди домашните се постваха във форума. Следователно ако не знаеш нещо, можеше да прочетеш решението и да овладееш know-how-то. А сега можеш само от даскала на упражнения, който няма физическото време за теб. Във форума няма информация за задачите, по някаква причина тези които са ги решили не са ги споделили. Кражба на интелектуална собственост и обида за труда им ли е? - което е тъпо защото се учим. Аз няма да стана умен колкото тях, ако им препиша задачите. Надявам се да не обиждам никой!

В лекциите няма всички overrides които ми трябват. Остава ми да уча от интернет, което е в пъти по-бавно.
Форума за този курс е безполезен сравнено с Javata от Март, Април, където примерите бяха безброй.

1
kaloyannikov avatar kaloyannikov 531 Точки

мога да ти дам 1 насока , понеже нямам VS в момента 

Може да използваш още 1 StringBuilder : първо Appendваш - "[URL" ,след това appendваш <a(\s*href=.*?)<\/a> от тоя регекс група 1  и накрая appendваш "[/URL]". Предполагам трябва да сработи.

1
05/06/2016 19:15:39
DonchoPatronski avatar DonchoPatronski 35 Точки

Хаха да така съм го направил в последствие. Сработва до някъде, но пак още нещо липсва.

С replace на " " и "\t" минавах първите 3 теста, а сега по-малко

0
05/06/2016 19:47:26
Boris.stavrev92 avatar Boris.stavrev92 42 Точки

   string text = Console.ReadLine();
            while (text != "end")
            {
                string pattern = @"<a.*?href.*?=(.*)>(.*?)<\/a>";
                string replace = @"[URL href=$1]$2[/URL]";
                string replaced = Regex.Replace(text, pattern , replace);
                Console.WriteLine(replaced);

                text = Console.ReadLine();
            }

0
Rextor92 avatar Rextor92 149 Точки

Ето тема - https://softuni.bg/forum/9777/question-regex-exercises 

Аз пък бях много против качването на цялото домашно. Имаш проблем - питаш. Все някой ще ти отговори. А не после да проверявам 5 идентични домашни.. :)  

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