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

Kodeord


Reklame
Top 10 brugere
Perl
#NavnPoint
bjarneA 141
poul_from 50
soccer 30
Nicknack 14
Tmpj 0
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."



Søg
Reklame
Statistik
Spørgsmål : 177579
Tips : 31968
Nyheder : 719565
Indlæg : 6409073
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste