Reg Exp(2) (fwd)

Honza Pazdziora adelton na informatics.muni.cz
Středa Únor 7 14:43:29 MET 2001


----- Forwarded message from DADAJ Marián <dadaj na asset.sk> -----

> From: DADAJ Marián <dadaj na asset.sk>
> Subject: Reg Exp(2)
> Date: Wed, 7 Feb 2001 14:00:07 +0100 
> To: "'adelton na informatics.muni.cz'" <adelton na informatics.muni.cz>
> X-Mailer: Internet Mail Service (5.5.2650.21)
> 
> Ospravedlnujem sa.
> chcel som len nacrtnut problem ktory nespociva v datach.
> spociva vlastne v tom, ako ho donutit, aby hodnotu premennej
> pre priklad $cim="\1\2\3" neakceptoval pri prikaze 
> 
> s/EXP/$cim/ ako 
> s/EXP/\\1\\2\\3/ ale aby sa hodnota premennej $cim
> reprezentovala ako skutocna hodnota \1\2\3, ktoru chcem dosiahnut.
> 
> Ide mi o to, aby som vyraz \1\2\3 mohol zadavat cez premennu
> s/EXP/\1\2\3/
> 
> nakolko sa bude tento vyraz menit a dosadzovat ako vstup funkcie.
> akoby som chcel napisat :
> 
> sub funkcia_s{
>  my($first,$second,$data) =@_;
> 
>  $data=~s/$first/$second/;
>  # tu by som v tomto pripade chcel ziskat $data=~s/$first/\1\2/;
>  # a nie skutocnost :$data=~s/$first/\\1\\2/;
>  return ($data);
> }
> 
> print funkcia_s ("(\\s+)(\\w+)","\\2\\1","   ahoj");
> 
> pricom ocakavam vysledok vymenenych vyrazov ="ahoj    ".
> 
> Vdaka.
> 
> 	Prosim, zpuste poslat, co presne mate. To, co jste poslal, nejde ani
> 	spustit (/(s+)(w+){s+)(w+)/: unmatched () in regexp). Pokud tu
> zavorku
> 	opravim, tak \2\1\3 nedostanete, protoze
> 
> 	$ perl
> 	$data="   abc   123";
> 	$co="(\s+)(\w+)(\s+)(\w+)";
> 	$cim="\2\1\3";
> 	$data =~ s/$co/$cim/gi;
> 	print "[$data]\n";
> 	__END__
> 	[   abc   123]
> 
> 	vzhledem k tomu, ze backslash ma mezi uvozovkami dosti specialni
> 	vyznam.
> 
> 
> 
> > 	S pozdravom
> > 

----- End forwarded message -----

-- 
------------------------------------------------------------------------
 Honza Pazdziora | adelton na fi.muni.cz | http://www.fi.muni.cz/~adelton/
 .project: Perl, mod_perl, DBI, Oracle, auth. WWW servers, XML/XSL, ...
Petition for a Software Patent Free Europe http://petition.eurolinux.org
------------------------------------------------------------------------


Další informace o konferenci Perl