Софтуерно Инженерство
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 528 Точки

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

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

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

0
kaloyannikov avatar kaloyannikov 528 Точки

<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 38 Точки

  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