|
| Regexp sp. Fra : Peter Sørensen |
Dato : 16-08-02 08:02 |
|
Hej,
Jeg har følgende Regexp hvor variabel $email er en mailadresse:
$Re=qr/^(\w+)\s+(\d+)\s+(\d+):(\d+):(\d+)\s+(\S+)\s+(\S+)\s+(\S+)\s+($key)\s
+<($email)>\s+->\s+<(\S+)>/;
if( $_ =~ $Re) { .....
Det splitter indhold af en logfil op hvor bl.a email adresser indgår. Da
email adresser kan indeholde
blanding af store/små bogstaver, ønsker jeg at lave en match der eliminerer
det problem. Jeg
har forsøgt følgende:
$Re=qr/^(\w+)\s+(\d+)\s+(\d+):(\d+):(\d+)\s+(\S+)\s+(\S+)\s+(\S+)\s+($key)\s
+<(\L$email\E)>\s+->\s+<(\S+)>/;
Det sikrer dog kun at alle tegn i $email er lowercase mens tegn i $_ som er
input ikke bliver konverteret.
Jeg kan ikke konvertere alle tegn i $_ til lowercase og jeg ønsker kun at
lave en if( $_ = $Re) {....
med venlig hilsen
Peter Sørensen
| |
Lars Kim Lund (16-08-2002)
| Kommentar Fra : Lars Kim Lund |
Dato : 16-08-02 08:02 |
|
"Peter Sørensen" <maspsr@dou.sdu.dk> wrote:
>blanding af store/små bogstaver, ønsker jeg at lave en match der eliminerer
>det problem.
Prøv med /i efter udtrykket.
--
Lars Kim Lund
http://www.net-faq.dk/
| |
Lars Balker Rasmusse~ (16-08-2002)
| Kommentar Fra : Lars Balker Rasmusse~ |
Dato : 16-08-02 08:04 |
|
"Peter Sørensen" <maspsr@dou.sdu.dk> writes:
> $Re=qr/^(\w+)\s+(\d+)\s+(\d+):(\d+):(\d+)\s+(\S+)\s+(\S+)\s+(\S+)\s+($key)\s
> +<($email)>\s+->\s+<(\S+)>/;
> if( $_ =~ $Re) { .....
>
> Det splitter indhold af en logfil op hvor bl.a email adresser indgår. Da
> email adresser kan indeholde
> blanding af store/små bogstaver, ønsker jeg at lave en match der eliminerer
> det problem.
Du skal bruge /i modifieren for at gøre regexer immune over for case.
Hvis du vil beholde case for $key, kan du skifte ($email) ud med
((?i)$email).
--
Lars Balker Rasmussen "S.M.R.T."
| |
Peter Sørensen (16-08-2002)
| Kommentar Fra : Peter Sørensen |
Dato : 16-08-02 08:32 |
|
Tusind tak for gode og hurtige svar.
Peter Sørensen
"Lars Balker Rasmussen" <lars@balker.org> wrote in message
news:0fznvnuvxe.fsf@laphroaig.balker.org...
> "Peter Sørensen" <maspsr@dou.sdu.dk> writes:
> >
$Re=qr/^(\w+)\s+(\d+)\s+(\d+):(\d+):(\d+)\s+(\S+)\s+(\S+)\s+(\S+)\s+($key)\s
> > +<($email)>\s+->\s+<(\S+)>/;
> > if( $_ =~ $Re) { .....
> >
> > Det splitter indhold af en logfil op hvor bl.a email adresser indgår. Da
> > email adresser kan indeholde
> > blanding af store/små bogstaver, ønsker jeg at lave en match der
eliminerer
> > det problem.
>
> Du skal bruge /i modifieren for at gøre regexer immune over for case.
> Hvis du vil beholde case for $key, kan du skifte ($email) ud med
> ((?i)$email).
> --
> Lars Balker Rasmussen "S.M.R.T."
| |
|
|