/
Forside
/
Teknologi
/
Udvikling
/
Perl
/
Nyhedsindlæg
Login
Brugernavn
*
Kodeord
*
Husk mig
Brugerservice
Kom godt i gang
Bliv medlem
Seneste indlæg
Stil et spørgsmål
Skriv et tip
Pointsystemet
Kontakt Kandu.dk
Emnevisning
Kategorier
Alfabetisk
Karriere
Interesser
Teknologi
Reklame
Top 10 brugere
Perl
#
Navn
Point
1
bjarneA
141
2
poul_from
50
3
soccer
30
4
Nicknack
14
5
Tmpj
0
Resultat af regular expression
Fra :
Martin Schmidt
Dato :
17-05-05 18:17
Hej,
Jeg ville jo tro at outputtet af følgende kode ville være:
$1 = 123
$2 = 456
--------------
use strict;
use warnings;
my $test="123abc456";
if ($test =~ m/\d*aBc\d*/mi)
{
print "\$1 = $1\n";
print "\$2 = $2\n";
}
1;
--------------
I stedet får jeg:
perl -w test.pl
Use of uninitialized value in concatenation (.) or string at test.pl line 7.
$1 =
Use of uninitialized value in concatenation (.) or string at test.pl line 8.
$2 =
Hvad er det jeg ikke forstår?
Jeg benytter:
perl, v5.8.6 built for MSWin32-x86-multi-thread
M.v.h.
Martin.
Peter Brodersen (
17-05-2005
)
Kommentar
Fra :
Peter Brodersen
Dato :
17-05-05 18:58
On Tue, 17 May 2005 19:17:01 +0200, "Martin Schmidt"
<martinjs-ingen-spam@bigfoot.com> wrote:
>if ($test =~ m/\d*aBc\d*/mi)
Du har ingen capturing parenteser her. Prøv med:
if ($test =~ m/(\d*)aBc(\d*)/mi)
--
- Peter Brodersen
Martin Schmidt (
17-05-2005
)
Kommentar
Fra :
Martin Schmidt
Dato :
17-05-05 19:37
"Peter Brodersen" <usenet2005@ter.dk> wrote in message
news:d6dbbp$42k$2@news.klen.dk...
> Du har ingen capturing parenteser her. Prøv med:
Dohh... ja selvfølgelig.
Tak.
M.v.h.
Martin.
Jesper Nøhr (
18-05-2005
)
Kommentar
Fra :
Jesper Nøhr
Dato :
18-05-05 13:36
Martin Schmidt wrote:
> Hej,
>
> Jeg ville jo tro at outputtet af følgende kode ville være:
>
> $1 = 123
> $2 = 456
>
> --------------
> use strict;
> use warnings;
>
> my $test="123abc456";
> if ($test =~ m/\d*aBc\d*/mi)
> {
> print "\$1 = $1\n";
> print "\$2 = $2\n";
> }
>
> 1;
> --------------
>
> I stedet får jeg:
>
> perl -w test.pl
> Use of uninitialized value in concatenation (.) or string at test.pl line 7.
> $1 =
> Use of uninitialized value in concatenation (.) or string at test.pl line 8.
> $2 =
>
> Hvad er det jeg ikke forstår?
For at extracte resultater fra regex'es skal du indramme dem med
paranteser. E.g.
$_="123abc456";
if (m/(\d+)aBc(\d+)/mi) {
print "\$1 = $1\n";
print "\$2 = $2\n";
}
...burde give dig det resultat du leder efter.
> Jeg benytter:
> perl, v5.8.6 built for MSWin32-x86-multi-thread
>
> M.v.h.
> Martin.
>
>
Søg
Alle emner
Teknologi
Udvikling
Perl
Indstillinger
Spørgsmål
Tips
Usenet
Reklame
Statistik
Spørgsmål :
177821
Tips :
31980
Nyheder :
719565
Indlæg :
6410976
Brugere :
218912
Månedens bedste
Årets bedste
Sidste års bedste
Copyright © 2000-2026 kandu.dk. Alle rettigheder forbeholdes.