Avatar billede hmortensen Nybegynder
06. marts 2006 - 22:51 Der er 9 kommentarer og
1 løsning

Simpel RegEx

Hej

Hvordan kan jeg parse flg.:
<name>Jan (11)</name>

Og få Jan og 11 i to seperate variabler.

Mvh.
H. Mortensen
Avatar billede arne_v Ekspert
06. marts 2006 - 23:05 #1
@"(?:<name>)([A-Za-z ]*)(?:\()([0-9]*)(?:\)</name>)"

var et forslag
Avatar billede arne_v Ekspert
06. marts 2006 - 23:12 #2
using System;
using System.Text.RegularExpressions;

namespace E
{
    public class MainClass
    {
        public static void Main(string[] args)
        {
            MatchCollection res = Regex.Matches("<name>Jan (11)</name>",@"(?:<name>)([A-Za-z ]*)(?:\()([0-9]*)(?:\)</name>)");
            for(int i = 0; i < res.Count; i++) {
                Console.WriteLine(res[i].Groups[1].Value);
                Console.WriteLine(res[i].Groups[2].Value);
            }
        }
    }
}

skriver ihvertfald det rigtige ud
Avatar billede arne_v Ekspert
06. marts 2006 - 23:12 #3
du maa lige justere hvis du vil have mellemrum haandteret anderledes
Avatar billede hmortensen Nybegynder
07. marts 2006 - 08:50 #4
Kan du komme med en nærmere forklaring, da jeg synes syntaksen ligger langt fra PHP/Perl's.
Avatar billede hmortensen Nybegynder
07. marts 2006 - 09:06 #5
Fungerer det ved at en gruppe som starter med '?:' ikke bliver taget med?
Avatar billede arne_v Ekspert
07. marts 2006 - 14:56 #6
ja
Avatar billede arne_v Ekspert
07. marts 2006 - 14:58 #7
og jeg vil tro at det ogsaa virker i PHP og Perl
Avatar billede hmortensen Nybegynder
07. marts 2006 - 17:56 #8
Tak for hjælpen, og et lille tillægsspørgsmål.

Hvis jeg har en streng med fx.:
<name>Jan</name><name>Ulla</name><name>Svend</name>

Og mit pattern er:
(?:<name>)(.*)(?:</name>)

Så får jeg kun et match:
Jan</name><name>Ulla</name><name>Svend

Hvordan fortæller jeg den at det er den første </name> der skal stoppes ved?
Avatar billede arne_v Ekspert
07. marts 2006 - 18:56 #9
proev:

(?:<name>)(.*?)(?:</name>)
Avatar billede hmortensen Nybegynder
07. marts 2006 - 19:02 #10
Ok mange tak.
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