Avatar billede kennedk Nybegynder
06. november 2007 - 16:22 Der er 5 kommentarer og
1 løsning

regex replace

Hej eksperter :)
Jeg sidder og leger lidt med noget Reg ex

Mit problem kommer når jeg vil erstatte noget i denne streng
body /* Boddy */
{
    color: #0f0f0f; /* tekst farve */
}
.hej hej /* HejKlasse */
{
    color: #0f0f0f; /* farve */
}

Det er et stylesheet, hvor jeg vil udskifte farven under color, som ligger i bodyen.

jeg har lavet denne kode, men kan ikke se hvordan det skal virke med at replace? Hvordan skal det løses?

Min regex kode

body[\s|\S]+[\*/][\w\s\-_]+[\*/\s]+{[\s|\S]+color:[\s]([\w\s#\-_\(\)]+);
Avatar billede kennedk Nybegynder
06. november 2007 - 16:36 #1
Efter videre test af den ref ex jeg har lavet virker den ikke, hvad skal den være før den virker?
Avatar billede nielle Nybegynder
06. november 2007 - 19:28 #2
Sådan?

        static void Main(string[] args)
        {
            string css =
@"body /* Boddy */
{
    color: #0f0f0f; /* tekst farve */
}
.hej hej /* HejKlasse */
{
    color: #0f0f0f; /* farve */
}";

            Regex re = new Regex(@"(?<=body /\* Boddy \*/[^{]*{[^}]*?color:\s*)#[0-9a-f]{6};");

            css = re.Replace(css, "NyFarveKode");
            Console.WriteLine(css);
        }
Avatar billede kennedk Nybegynder
06. november 2007 - 22:55 #3
Hej nielle.

Nu har jeg tilrettet den lidt, så jeg tror den virker efter mit behov :)
(?<=\.hej[\s|\S]/\*[\s|\S][\w\-_]+[\s|\S]\*/[^{]*{[^}]*?color:\s*)[#\w\(\)\"\.]+

Men der er noget jeg ikke helt forstår, det er hvad de tre første tegn betyder? "?<="
Avatar billede nielle Nybegynder
06. november 2007 - 23:02 #4
(?<=...)

er en "Positive Lookbehind" som du f.eks. kan læse mere om her:

http://www.regular-expressions.info/lookaround.html

Populært sagt vil mønstret:

(?<=XXX)YYY

match "YYY" hvis og kun hvis der står "XXX" foran dette.
Avatar billede kennedk Nybegynder
06. november 2007 - 23:13 #5
Smart :) Du har fortjent point (:
Avatar billede nielle Nybegynder
07. november 2007 - 06:44 #6
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