Avatar billede montago Praktikant
04. oktober 2007 - 09:27 Der er 3 kommentarer og
1 løsning

Regex, Replace & Matches - behandling af matches

Jeg har et objekt som ser nogenlunde sådan her ud:

class Obj
{
    private string HTML;
    private string BaseURL;
   
    public Obj(string str, string str2)
    {
        //en HTML side
        HTML = str;
        BaseURL = str2;
       
        Convert(HTML, BaseURL)
    }
    public static string Convert(string str, string url)
    {
        string FormattetHTML = str;
        /*
            RegEx konvertering af URLS inde i HTML siden
            Links skal laves absolutte.
        */
        return FormattetHTML;
    }
}


Hvordan bruger jeg Regex til at gennemløbe links inde i HTML-strengen ??

Regex til at finde links : @"(<a.+?href=\")(.+?)(\".+?>)"
Avatar billede montago Praktikant
04. oktober 2007 - 09:29 #1
min første tanke var at bruge Regex.replace med en MatchEvaluator... men heri kan jeg ikke parse eller bruge BaseURL :( -- allerhelst ville jeg gerne benytte Uri(Uri,BaseURL) til at konvertere mine links nemmest... men pga. static scope kan jeg vidst ikke komme til det !

min anden tanke er at bruge Regex.Matches som skaber en collection, men denne kan vidst ikke bruges til at ændre i den originale HTML-streng...
Avatar billede montago Praktikant
04. oktober 2007 - 09:44 #2
wow...

Regex URLPattern = new Regex("(<a.+?href=['\"])(.+?)(['\"].*?>)", RegexOptions.IgnoreCase);
foreach (Match m in URLPattern.Matches(HTML))
{
  HTML.Replace(m.ToString(), "<a href='" + URLFormatter(m, objref,...) + "'>");
}
Avatar billede montago Praktikant
04. oktober 2007 - 09:45 #3
medmindre nogen kommer med en smartere løsning... vil jeg bruge denne Quick'n'Dirty løsning...
Avatar billede montago Praktikant
04. oktober 2007 - 09:48 #4
min største frygt er at løsningen er langsom

dét jeg rigtig gerne ville, var at smide en parameter mere med MatchEvaluator'en men har tænkt over det og det er vidst ikke muligt...
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester