Avatar billede casualty Nybegynder
02. december 2004 - 12:32 Der er 7 kommentarer og
1 løsning

Erstatte <a href="Etellerandetlink">test</a>

Hvordan kan jeg løbe en streng igennem og erstatte alle links
eks: <a href="Etellerandetlink">test</a> med #(a href="Etellerandetlink"#)test#(/a#)

det er kun ved links der skal erstattes, alle andre html tags skal forblive som de er...

Mvh Casualt
Avatar billede casualty Nybegynder
02. december 2004 - 12:39 #1
der skal filtreres alle steder hvor der står <a> eller </a>
Avatar billede arne_v Ekspert
02. december 2004 - 12:47 #2
En regex med grupper burde kunne bruges.
Avatar billede casualty Nybegynder
02. december 2004 - 12:51 #3
har du et eksempel? jeg er ikke stiv i regex
Avatar billede casualty Nybegynder
02. december 2004 - 12:52 #4
Fandt dette memn det virker ikke:

string t18 = @"
<html>
<a href=""first.htm"">first tag text</a>
<a href=""next.htm"">next tag text</a>
</html>
";
string p18 = @"<A[^>]*?HREF\s*=\s*[""']?"
  + @"([^'"" >]+?)[ '""]?>";
MatchCollection mc18 = Regex.Matches(t18, p18, "si");
Avatar billede arne_v Ekspert
02. december 2004 - 12:56 #5
Jeg kan lave et eksempel.

Senere.
Avatar billede arne_v Ekspert
02. december 2004 - 15:52 #6
Prøv med:

using System;
using System.Text;
using System.Text.RegularExpressions;

public class HtmlManip
{
    public static void Main(string[] args)
    {
        test("bla <a href=\"url\">beskrivelse</a> bla");
        test("bla <a href=\"url1\">beskrivelse1</a>bla<a href=\"url2\">beskrivelse2</a>bla");
    }
    private static void test(string s)
    {
        Console.WriteLine(s);
        Console.WriteLine(LinkReplace(s));
    }
    public static string LinkReplace(string s)
    {
        MatchCollection res = Regex.Matches(s,"(.*?)(<a href=\")([^\"]*)(\">)(.*?)(</a>)(.*)");
        StringBuilder sb = new StringBuilder("");
        for(int i = 0; i < res.Count; i++) {
            sb.Append(res[i].Groups[1]);
            sb.Append("#(a href=\"");
            sb.Append(res[i].Groups[3]);
            sb.Append("\"#)");
            sb.Append(res[i].Groups[5]);
            sb.Append("#(/a#)");
            sb.Append(res[i].Groups[7]);
        }
        return sb.ToString();
    }
}
Avatar billede casualty Nybegynder
14. december 2004 - 08:38 #7
1000 tak for hjælpen... Læg et svar
Avatar billede arne_v Ekspert
14. december 2004 - 08:40 #8
svar
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