---------- Forwarded Message ----------
Subject: Re: [Comandob] mirar si N processos estan corrent, en Perl
Date: Friday 30 October 2009
From: Azazelo <azazel...@__badopi.org>
To: Lista general de BaDoPi <[email protected]>
On Friday 30 October 2009 16:45:09 Ferran Fontcuberta wrote:
> El vie, 30-10-2009 a las 11:35 +0100, Daniel López escribió:
> > On Friday 30 October 2009 10:26:03 Ferran Fontcuberta wrote:
> > > perl -e 'print $1 if "foo bar" =~ /((bar)?)/'
> >
> > així sí:
> >
> > perl -e 'print $1 if "foo bar" =~ /(?: (bar)?)/'
>
> Merci! :)
>
> Era l'espai, que tocava els collonets... ¿docu o proves? Si es docu,
> m'hi pots referir, si vos plau?
be, ara que ho provo l'espai sí que canvia coses. Al princi he pensat que $1
estava printant el primer parentessi que has posat (que potser sobrava??) i
he pensat el non-capturing, he provat i ha funcionat. Això em recorda la
frase: - It just works is not enough.
Em sembla que els trets van pel tema "greedy/non greedy"... i amb el ? no
captura res perque és opcional i non-greedy, és a dir, que captura el menys
possible?
exemple extret del llibre learning perl, pag 103, Randal L Schwartz, 4a edició
on podem veure què ha fet match en una expressió regular:
d...@danici:~$ cat prova.pl
#!/usr/bin/perl
while (<>) {
chomp;
if ( /((bar)?)/ ){
print "Matched: |$`<$&>$'|\n";
} else {
print "No match\n";
}
}
d...@danici:~$ perl prova.pl
foo bar
Matched: |<>foo bar|
No sé, aquí és quan em comença a fer mal el cap... :)
salut
dani
-------------------------------------------------------
--
_______________________________________________
Comandob mailing list
[email protected]
http://lists.badopi.org/mailman/listinfo/comandob