Regular Expressions -> 04. Replace a tag. Малко помощ
На тази задача според примера стигнах до извода, че трябва да използвам StringBuilder за да добавям входните стрингове в един стринг и да махна всички white spaces. След това използвам един Replace и май това е lambda expression. Съмнявам се, че не съм го направил по най-гъзарския начин, имам 66точки. Ако може да ми кажете и начин без Lambda... т.е. с текущия материал
https://gist.github.com/Patronski/cf180f34b3a65b0728aee349a1d88c44
Прав си и без да махам whitespace-овете минах първите 2 теста. Но нулевия и третия не мога.
<a(href=.*?)>(.*?)<\/a> това ти е регекса , обаче не виждам смисъл да capture-ваш контента . на теб единствено ти трябва <a и </а>, другото не те интересува.
така че може да си направиш групите да хващат тях демек (<a)\s*href=.*?>.*?(<\/a>).
input = Regex.Replace(fromSB, pattern, m => "[URL " + m.Groups[1].Value + "]" + m.Groups[2].Value + "[/URL]");
Реплейсвам целия контент. Лепя URL както се изисква и от групите добавям старата част. Търся си в интернет как да реплейсвам само двете URL и скобичката в средата, но вече 6 часа не мога да се оправя.
Като цяло преди домашните се постваха във форума. Следователно ако не знаеш нещо, можеше да прочетеш решението и да овладееш know-how-то. А сега можеш само от даскала на упражнения, който няма физическото време за теб. Във форума няма информация за задачите, по някаква причина тези които са ги решили не са ги споделили. Кражба на интелектуална собственост и обида за труда им ли е? - което е тъпо защото се учим. Аз няма да стана умен колкото тях, ако им препиша задачите. Надявам се да не обиждам никой!
В лекциите няма всички overrides които ми трябват. Остава ми да уча от интернет, което е в пъти по-бавно.
Форума за този курс е безполезен сравнено с Javata от Март, Април, където примерите бяха безброй.
мога да ти дам 1 насока , понеже нямам VS в момента
Може да използваш още 1 StringBuilder : първо Appendваш - "[URL" ,след това appendваш <a(\s*href=.*?)<\/a> от тоя регекс група 1 и накрая appendваш "[/URL]". Предполагам трябва да сработи.
Хаха да така съм го направил в последствие. Сработва до някъде, но пак още нещо липсва.
С replace на " " и "\t" минавах първите 3 теста, а сега по-малко
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();
}
Ето тема - https://softuni.bg/forum/9777/question-regex-exercises
Аз пък бях много против качването на цялото домашно. Имаш проблем - питаш. Все някой ще ти отговори. А не после да проверявам 5 идентични домашни.. :)