Avatar billede jespera Nybegynder
23. maj 2005 - 15:59 Der er 8 kommentarer og
1 løsning

Find links i href og kun med http (RegEx/Groups i C#)

Hej Alle,

Jeg har denne kode på min side

if (inputString != "")
{
    Regex r;
    Match m;

    r = new Regex("href\\s*=\\s*(?:\"(?<1>[^\"]*)\"|(?<1>\\S+))",RegexOptions.IgnoreCase|RegexOptions.Compiled);

    for (m = r.Match(inputString); m.Success; m = m.NextMatch())
    {
        System.Web.HttpContext.Current.Trace.Write("htmllink found:"+m.Groups[1]);
    }           
}       

og den finder det den skal.

Men nu skal den optimeres til kun at finde de valide links, altså den skal kun finde de links der har http:// i starten, resten skal den bare se bort fra....

Hvordan laves det.
Avatar billede arne_v Ekspert
23. maj 2005 - 16:02 #1
du sætter vel bare http ind i regex udtrykket

r = new Regex("href\\s*=\\s*(?:\"(?<1>http://[^\"]*)\"|(?<1>\\S+))",RegexOptions.IgnoreCase|RegexOptions.Compiled);

vil jeg tro
Avatar billede jespera Nybegynder
23. maj 2005 - 16:17 #2
hmm har jeg også prøvet (samme som dit), men den skal kun tage links med http:// foran.
Avatar billede arne_v Ekspert
23. maj 2005 - 16:19 #3
og gør den ikke det ?
Avatar billede jespera Nybegynder
23. maj 2005 - 16:23 #4
nej, f.eks hvis jeg har et link a href="www.test.com" så finde den også men det burde den ikke for vi har sagt at http:// skal være tilstede ?
Avatar billede arne_v Ekspert
23. maj 2005 - 16:38 #5
det er din eller som driller !

using System;
using System.Text.RegularExpressions;

class MainClass
{
    public static void Main(string[] args)
    {
        string inputString = "bla bla a href=\"www.test.com\" bla bla href=\"http://www.test2.com\" bla bla";
        Regex r = new Regex("href\\s*=\\s*(?:\"(?<1>http://[^\"]*)\")",RegexOptions.IgnoreCase|RegexOptions.Compiled);
        for (Match m = r.Match(inputString); m.Success; m = m.NextMatch())
        {
            Console.WriteLine("htmllink found:" + m.Groups[1]);
        }   
    }
}
Avatar billede arne_v Ekspert
23. maj 2005 - 16:38 #6
|(?<1>\\S+)

matcher ret meget !
Avatar billede jespera Nybegynder
23. maj 2005 - 16:43 #7
arhhh så funker det bare....
Avatar billede arne_v Ekspert
23. maj 2005 - 16:46 #8
så ligger jeg et svar
Avatar billede jespera Nybegynder
23. maj 2005 - 16:47 #9
ligger du ikke lige et svar.....og tak for hjælpen

og når vi så er igang, så hvis du har tid så mangler jeg et svar på et regex spg. her http://www.eksperten.dk/spm/617130 

:-)
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