/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
preg_match
Fra : Morten Winther


Dato : 12-11-01 22:06

Hej

Kan ikke rigtig få denne til at virke:

<?
$streng ='TestNavn åæø-35';
if (preg_match("/[-a-z.0-9\s]+/i", $streng)) {
// matcher
print 'ok';
} else {
print 'nej';
}
?>

Jeg vil tillade mellem 3 og 5 tegn og har forsøgt med {3,5} altså:

if (preg_match("/[-a-z.0-9\s]{3,5}+/i", $streng)) {

Så får jeg dog denne fejl: Compilation failed: nothing to repeat at offset
17

Jeg forstår heller ikke hvorfor den egentlig matcher åæø, når jeg kun har
skrevet a-z?

Nogen der lige kan forklare?


/ morten



 
 
Nezar Nielsen (12-11-2001)
Kommentar
Fra : Nezar Nielsen


Dato : 12-11-01 23:59

"Morten Winther" <mw@get2net.dk> wrote in message
news:3bf0399f$0$230$edfadb0f@dspool01.news.tele.dk...
> <?
> $streng ='TestNavn åæø-35';
> if (preg_match("/[-a-z.0-9\s]+/i", $streng)) {

Hvis et eller flere af tegnene blev fundet vil den der matche.

...

> Jeg vil tillade mellem 3 og 5 tegn og har forsøgt med {3,5} altså:
>
> if (preg_match("/[-a-z.0-9\s]{3,5}+/i", $streng)) {
>
> Så får jeg dog denne fejl: Compilation failed: nothing to repeat at offset
> 17

Yes, det er fordi du har sat + efter {3,5} - de er jo begge to til at matche
på antal matchede tegn, den fejlbesked du ville have fået fra perl ser sådan
her ud:

Nested quantifiers before HERE mark in regex m/[-a-z.0-9\s]{3,5}+ << HERE

Så fjern plus, så skulle det gerne virke for dig.

> Jeg forstår heller ikke hvorfor den egentlig matcher åæø, når jeg kun har
> skrevet a-z?

Fordi du bare spurgte om et eller flere af de ranges af tegn i []
matchede..og det gjorde de :)

--
Mvh. Nezar Nielsen
http://fez.dk/




Morten Winther (13-11-2001)
Kommentar
Fra : Morten Winther


Dato : 13-11-01 00:37


"Nezar Nielsen" <tumpen@fez.dk> wrote in message
news:hAYH7.446$Bs1.108837@news000.worldonline.dk...
> "Morten Winther" <mw@get2net.dk> wrote in message
> news:3bf0399f$0$230$edfadb0f@dspool01.news.tele.dk...

> Hvis et eller flere af tegnene blev fundet vil den der matche.
>
> Yes, det er fordi du har sat + efter {3,5} - de er jo begge to til at
matche
> på antal matchede tegn, den fejlbesked du ville have fået fra perl ser
sådan
> her ud:
>
> Nested quantifiers before HERE mark in regex m/[-a-z.0-9\s]{3,5}+ << HERE
>
> Så fjern plus, så skulle det gerne virke for dig.


Takker

/ morten



Søg
Reklame
Statistik
Spørgsmål : 177522
Tips : 31968
Nyheder : 719565
Indlæg : 6408670
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste