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
Boris.stavrev92 avatar Boris.stavrev92 42 Точки

  static void Main(string[] args)
        {

// начало на кода


            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();
            }
            

 

        }

1
RIFFRAFF avatar RIFFRAFF 7 Точки

Тази задача се оказа доста приятна ,като се има предвид неприятните тестове ! :))) 

Всъщност нулевият тест показва много отчетливо ,че хардкодването на част от този ред не е вариант !

Ето го и моето решение - C# : https://pastebin.com/gFqm4GSG  -  100/100

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