Gå til innhold

Matche domene med expr


Anbefalte innlegg

Skrevet (endret)

Skal lage et enkelt lite bash script som skal hjelpe til å opprette virtuelle domener. I den forbindelse skulle jeg gjerne hatt en sjekk at domene navnet som oppgis av brukeren er et gyldig domene navn.

 

Det skal altså være tegnene "a..z", "0..9", "_" og "-" som er tilatt.

Det skal så være et punktum, og etter punktumet skal det være mellom 2 og 4 bokstaver.

 

Slik jeg har forstått dokumentasjonen skulle det da gå ann å skrive:

expr ${domenenavn} : '[a-z0-9+-_]*[.][a-z]{2,4}'

 

Det som ikke funker er at [a-z0-9+-_] også matcher "+", "/" og "\" som ikke er meningen.

Ved å fjerne + blir det feil.

{2,4} funkerer heller ikke.

 

Noen som kan dette?

 

Edit:

Også hvis domenet er på formen sub.domene.no skal den matche. Jeg må altså få [.] til å matche det siste ".", slik jeg har skrevet over vil den matche første "."

Endret av petterg
Videoannonse
Annonse
Skrevet

^([a-zA-Z0-9]([a-zA-Z0-9\-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,6}$

 

Denne sjekker iallefall om domenet er gyldig eller ei. Jeg har ikke skrevet den selv, desverre. Fant den via en link fra wikipedia. Direkte link.

Skrevet

Men problemet er at expr kommandoen i linux ikke tar samme syntax som vanlig reg.expr. Så vidt jeg vet er det den jeg må bruke i bash script?

F.x {tall, tall} (som er brukt to ganger i posten over) ikke fungerer som normalt med denne.

Heller ikke + betyr "minst en gang" som i reg.expr

Og "\" funker ikke som escape!

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...