Avatar billede hangaard Nybegynder
08. januar 2003 - 15:28 Der er 10 kommentarer og
1 løsning

Sammensatte Regular Expressions - kan man det?

Hej!
Jeg vil gerne matche noget input med noget regular expression, men det er ikke kun mønstret der skal over holdes, også min. og max. længde skal overholdes.
Kan jeg sammensætte (AND'e) følgene - eller er der en anden måde at gøre det på?:
RE1 (længde) : .{15,32}
RE2 (mønster): [0-9]{4}[1-2]{1}[0-2]{1}[0-2]{1}[0-1]{1}[0-9]{4}.{0,17}/.{0,17}/.{0,17}/.{0,17}

Mvh.
hangaard
Avatar billede Slettet bruger
08. januar 2003 - 16:22 #1
Du kan ikke AND'e i et regulært udtryk. Du bliver nødt til at klare dig med f.eks. en if-sætning.

if ((input =~ RE1) AND (input =~ RE2)) {}

eller evt. huske hvad du matchede i RE2, og så tage længden af det bagefter.
Avatar billede hangaard Nybegynder
08. januar 2003 - 16:30 #2
Øv, jeg havde det på fornemmelsen!
Tak for svaret!
Avatar billede tangveje Nybegynder
10. januar 2003 - 16:25 #3
Kan da ikke se hvorfor det ikke skulle være muligt... Virker dette?

([0-9]{4}[1-2]{1}[0-2]{1}[0-2]{1}[0-1]{1}[0-9]{4}.{0,17}/.{0,17}/.{0,17}/.{0,17}){15,32}
Avatar billede hangaard Nybegynder
10. januar 2003 - 16:31 #4
Tak til Tangveje for "svaret"!

Hvis du vil ha' dine point må du sende mig en svar-besked!

Hilsen
Allan
Avatar billede tangveje Nybegynder
10. januar 2003 - 16:32 #5
:) Så lidt
Avatar billede Slettet bruger
10. januar 2003 - 16:50 #6
tangveje kan du ikke lige forklare hvorfor det virker?

Så vidt jeg kan se matcher den hele RE2 15-32 gange. Alene den allerførste betingelse [0-9]{4} bliver så minimum 15*4=60 tegn lang.
Avatar billede hangaard Nybegynder
10. januar 2003 - 16:51 #7
Hej tangveje!

Det virker ikke!
Jeg synes ellers det var ret indlysende at det måtte være sådan.
Men {15,32} betyder bare at der må være 15-32 forekomster af hele RE2 og ikke længden af RE2.

Hvis du skulle komme i tanker om noget må du meget gerne skrive tilbage.

Hilsen
hangaard
Avatar billede Slettet bruger
10. januar 2003 - 16:57 #8
Brug if-sætningen, det er den eneste fornuftige måde at gøre det på. Den eneste anden er at definere accept tilstande for samtlige mulige kombinationer (eller i hvert fald størstedelen af dem), og der er lidt for mange :)
Avatar billede tangveje Nybegynder
10. januar 2003 - 17:10 #9
Synes også det virkede logisk i første omgang, og gik udfra du havde testet det... Men kan godt se problemet nu...

Hvilket vel vil sige at jjust skal have pointsne :) Opretter lige et spm til dig jjust
Avatar billede tangveje Nybegynder
10. januar 2003 - 17:12 #10
Avatar billede Slettet bruger
10. januar 2003 - 17:12 #11
Det gør ikke noget med pointsene :)
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
Kurser inden for grundlæggende programmering

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