Slozitejsi nahrazovani retezcu

Pavel Kankovsky peak na argo.troja.mff.cuni.cz
Neděle Leden 27 19:10:44 CET 2002


On 25 Jan 2002, Pavel Lisy wrote:

>    $line =~ s/(\d{4})-(\d{2})-(\d{2})/&correctdate($1:$2:$3)/; 

Pomineme-li jine chyby (chybejici /e, zrejme chybejici /g, carky mezi
parametry, ne uplne dobre predavani parametru do correctdate()), tak
nejvetsi chybou je, ze je to zbytecne slozite. Staci totiz:

  $line =~ s/(\d{4})-(\d{2})-(\d{2})/$3-$2-$1/g;

(mimochodem...ve vysledky mela byt ta cisla oddelena
jak? pomlckami? dvojteckami?)

Coz dava navod, jak to same udelat ve vi ci vimu:

  :%s/\([0-9][0-9][0-9][0-9]\)-\([0-9][0-9]\)-\([0-9][0-9]\)/\3-\2-\1/g

(vim mozna umi sofistikovanejsi zapisy regularnich vyrazu, takze by to
tam slo napsat jednoduseji)

--Pavel Kankovsky aka Peak  [ Boycott Microsoft--http://www.vcnet.com/bms ]
"Resistance is futile. Open your source code and prepare for assimilation."



Další informace o konferenci Linux