Reg exp
Honza Pazdziora
adelton na informatics.muni.cz
Středa Únor 7 13:28:17 MET 2001
On Wed, Feb 07, 2001 at 12:22:14PM +0100, DADAJ Marián wrote:
> potreboval by som za behu programu menit "pravy' regularny vyraz pri
> pouzitei prikazu s.
> vyzera to nasledovne :
>
> $data=" abc 123";
> $co="(\s+)(\w+){\s+)(\w+)";
> $cim="\2\1\3";
>
> 1: s/$co/$cim/gi; #Toto mi vsak nefunguje na rozdiel od
> 2: s/$co/\2\1\3/gi; #co reaguje korektne.
>
> Ako mam napisat reg exp pre $cim, alebo ako smenit pravu stranu s///,
> aby som dosiahol korekny (kroy ocakavam)vysledok?
>
> vysledok 2 : "abc 123" --toto chcem
> vysledok 1 : "\2\1\3"
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.
--
------------------------------------------------------------------------
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