Gå til innhold

REGEXP og punktup-problem (mysql)


Anbefalte innlegg

Hei!

 

Jeg har en database med forskjellige artister og band jeg vil søke gjennom. Spørringen jeg bruker nå (REGEXP '[[:<:]]$keyword') funker helt fint frem til jeg skal søke på artistnavn som tilfeldigvis begynner med punktum (.).

 

Dette tuller seg jo med spørringen og henter ut alle radene i tabellen.

 

Jeg er helt grønn på regular expressions, så jeg trenger litt hjelp med å slenge på to slashes før alle punktum i en streng.

 

Hjertelig takk på førehand.

Lenke til kommentar
Videoannonse
Annonse

Det var kanskje litt dårlig forklart...

 

Den spørringen jeg har skrevet til nå funker helt fint til å hente ut artistnavn som Kaizers Orchestra, Oasis eller Kent, og album som The Masterplan, Ompa til du dør osv.

 

Men ikke hvis man vil søke på f.eks (What's the story) morning glory, eller ...And justice for all.

 

Dette fordi punktum virker som et wildcard ser det ut som.

 

Så jeg tror jeg trenger en måte å escape punktum og andre mysql-sensitive karakterer slik at det går an å bruke dem i en søkestreng.

 

Så når brukeren begynner å skrive ".." så skal kun de treffene som faktisk begynner på to punktum dukke opp, og ikke alle radene med to eller fler bokstaver i navnefeltet. Det samme hvis brukeren begynner å skrive "(". Sistnevnte eksempel gir bare denne feilmeldingen for øyeblikket: "Got error 'parentheses not balanced' from regexp"

Endret av DeGrevio
Lenke til kommentar

Det vanlige i regexp er å slenge på en backslash forran punktum for å matche et punktum.

 

Dette vil matche et punktum:

\.

 

Dette vil matche to punktum etter hverandre:

\.\.

 

Eller

\.{2}

 

Nb: sistnevnte alternativ er det mer skjeldent at programmer støtter, men det burde virke.

Lenke til kommentar

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...