16. februar 2008 - 10:01Der er
12 kommentarer og 1 løsning
Finde html-tags med bestemt css klasse
Hvordan laver jeg en regex, som finder alle html-tags med en bestemt cssklasse? Eksempelvis vil jeg gerne finde alle html-tags med cssklassen "selected" ? Jeg vil gerne have både tagget og indholdet, dvs. <TAG class="seleced">bla bla</TAG>
Denne side indeholder artikler med forskellige perspektiver på Identity & Access Management i private og offentlige organisationer. Artiklerne behandler aktuelle IAM-emner og leveres af producenter, rådgivere og implementeringspartnere.
er det muligt at matche et tag på "selected" selvom tagget måtte have flere cssklasser? Lad os sige, at jeg gerne vil finde følgende tag: <span class="selected frontpage">bla bla</span> eller <span class="frontpage selected">bla bla</span>
dvs. "selected" kan stå på forskellige steder i class og optræder ikke nødvendigvis alene
Hm... kan ikke helt få det til at virke. Min kode: string tagExpression="(<[^>]+class=\"[^\"]*?\bselected\b[^\"]*\"[^>]*>)"; string div="<span class=\"frontpage selected\">bla bla</span>";
MatchCollection tags = Regex.Matches(div.ToLower(), tagExpression, RegexOptions.Multiline | RegexOptions.Singleline | RegexOptions.IgnoreCase); foreach (Match tag in tags) { System.Diagnostics.Debug.WriteLine(tag.Value); }
er det egentligt muligt at "rense" resultatet for andre htmltags?
Det endte med, at min regex ser således ud: string baseExpression = "(<[^>]+class=\"[^\"]*?\\bselected\\b[^\"]*\"[^>]*>)(.*?)</"; Jeg hiver alle match ud: MatchCollection tags = Regex.Matches(html.ToLower(), tagExpression, RegexOptions.Multiline | RegexOptions.Singleline | RegexOptions.IgnoreCase);
den finder alle tags med "selected" i css-klassen og hiver også indholdet ud indtil tagget afsluttes.
Nogle af mine resultater indeholder dog "<br />" (eksempelvis hvis htmlen er <span class="frontpage selected">bla <br /> bla</span>.
Kan regex laves så den IKKE også hiver indlejrede tags ud (eks <br />) ?
Hvis du ønsker at bruge det der mønster, så tvinger du den jo til at matche alt indlejret tekst med - inkl. eventuelle tags.
Jeg kan ikke helt se hvorfor at du har taget den sidste del med ... specielt eftersom at du alligevel ikke matcher hele slut-taggen med (men kun lige starten af den)?
jeg vil gerne have alt med i mellem start- og slut-tagget og "</" markerer slutningen af tagget, så derfor tager jeg det med. Det er indholdet og ikke tagget selv, jeg gerne vil hive ud i sidste ende.
Men så får du jo også automatisk eventuelle indlejrede tags med. :^)
Synes godt om
Ny brugerNybegynder
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.