Jeg er ret sikker på, at \w er [0-9A-Za-z_] altså uden de danske
bogstaver. Men jeg vil anbefale dig at bruge \pL i stedet for, da den
matcher alle former for bogstaver i Unicode.
Henning Michael Møller Just skrev:
> Umiddelbart ser problemet ud til at være at \w ikke matcher æøå
karaktererne.
>
> \w+\z matcher fordi strengen ****ter med 'g'
> \A\w+ matcher fordi strengen starter med 'k'
>
> Jeg skal lige prøve at se hvad jeg kan finde af eksempler, hvor det
virker. Det er Perl 5.8, ikke sandt? Er det kun danske tegn der skal
accepteres?
>
> /Henning
>
>
> -----Original Message-----
> From: Jonas B. Nielsen [mailto:jonasbn@[EMAIL PROTECTED]
> Sent: Friday, March 23, 2007 9:48 AM
> To: Cph.pm Cph.pm
> Subject: Et lille regex problem og Data::FormValidator
>
> Hola,
>
> Jeg sidder og bokser lidt med et meget simpelt regular expression.
> Jeg har en UTF8 string, i form af eksemplet 'kødpålæg'. Jeg forsøger
> at sikre mig at det indtastede ord, som vil være UTF8 og kan
> indeholde danske bogstaver er en string.
>
> Så jeg vil gerne benytte følgende regex: /\A\w+\z/ men dette matcher
> ikke, men hvis jeg fjerner enten \A eller \z så virker det??? se alle
> scenarier nedenfor
>
> Sådan ser det ud for: kødpålæg:
>
> \A\w+\z, matcher ikke
> \A\w+, matcher
> \w+\z, matcher
>
> ^\w+$, matcher ikke
> ^\w+, matcher
> \w+$, matcher
>
> Og nu bliver det sjovt, for sådan ser det ud for stringen: hest:
>
> \A\w+\z, matcher
> \A\w+, matcher
> \w+\z, matcher
>
> ^\w+$, matcher
> ^\w+, matcher
> \w+$, matcher
>
> Er der nogen der kan se noget som jeg har misset?
>
> jonasbn
>
>
>


|