Article View: pl.comp.lang.perl
Article #52038Re: Jak w zmienic wartosc liczbowa w regexpie
From: Andrzej Adam Filip
Date: Mon, 29 Nov 2010 12:03
Date: Mon, 29 Nov 2010 12:03
41 lines
2587 bytes
2587 bytes
tomjas <tomjas@WYTNIJTOpoczta.onet.pl> pisze:
> Witam.
> Temat dosc enigmatyczny wiec objasnie na przykladzie o co mi chodzi.
> Klasyczny przyklad - napisy do filmu w formacie MicroDVD czyli
> ...
> {63245}{63250}Jakis tekst
> ...
> No wlasnie - jak teraz zwiekszyc te druga liczbe (napisy wyswietlaja sie
> za krotko). Zapewne jako poczatkujacy zabieram sie od dupy strony
> i probuje cos takiego:
> while(<>){s/{(\d+)}{(\d+)}/{$1}{$2}/}
> No i teraz - co podstawic pod $2, tak by nowe $2=$2+50?
> Z gory dzieki - na przekor twierdzeniom ostatnio na grupie ze perl
> umiera postanowilem sie nauczyc w nim regexpow.
W stylu "ochydny jednolinijkowiec":
#v+
while(<>){s/^{(\d+)}{(\d+)}/"{$1}{".($2+50)."}"/e
#v-
(IMHO) W stylu "jak jako tako szanujący się programista powinien":
#v+
while(<>){
if( my($start,$end,$text) = (/^{(\d+)}{(\d+)}(.*)$/) ) {
$_=sprintf("{%d}{%d}%s",$start,$end+50,$text;
}
}
#v-
Przy czym "jako tako szanujący się programista" sprawdzałby czy czasy
kolejnych napisów "nie nachodzą na siebie".
P.S.
Sam napisałem już kilka skryptów które "może i warto byłoby rozpowszechnić"
ale niestety napisane były w stylu "wstydziłbym się innym pokazać"
bo uważałem że są do użytku "jednoosobowego" ;-)
--
Andrzej Adam Filip : anfi@onet.eu : Andrzej.Filip@gmail.com
Zanika rękodzieło. Nawet w zbrodni.
-- Lec, Stanisław Jerzy (1909-1966)
Technical Details
Message-ID:
<k5fqa8rjqy+ABT@stephen.huge.strangled.net>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!wsisiz.edu.pl!plix.pl!newsfeed1.plix.pl!news.nask.pl!news.nask.org.pl!news.onet.pl!.POSTED!not-for-mailReferences:
<slrnif73so.ps1.tomjas@krusty.localhost>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!wsisiz.edu.pl!plix.pl!newsfeed1.plix.pl!news.nask.pl!news.nask.org.pl!news.onet.pl!.POSTED!not-for-mail
From: Andrzej Adam Filip <anfi@xl.wp.pl>
Newsgroups: pl.comp.lang.perl
Subject: Re: Jak w zmienic wartosc liczbowa w regexpie
Date: Mon, 29 Nov 2010 13:03:35 +0100
Organization: It's for me to know and for you to find out
Lines: 41
Message-ID: <k5fqa8rjqy+ABT@stephen.huge.strangled.net>
References: <slrnif73so.ps1.tomjas@krusty.localhost>
NNTP-Posting-Host: 188.33.12.220
Mime-Version: 1.0
X-Trace: news.onet.pl 1291032220 9808 188.33.12.220 (29 Nov 2010 12:03:40 GMT)
X-Complaints-To: niusy@onet.pl
NNTP-Posting-Date: Mon, 29 Nov 2010 12:03:40 +0000 (UTC)
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/23.2 (gnu/linux)
X-Face: x!RCZuWd!~zy[WZ--'Or^Sg%4CS|m{fI',,mn]{v48gP6t<T}6E3\^w6l";f\KKk}b4f9CD Tx8UwgYFn@L{y\`J:sm/-*OvU^n{I8o>r9LaE!Sw#;.(U,saf9UdWF+9D9oyXCRUHAw=",9%P~.{jz :e7&c^rlc@F-X}f!"@Vc^jEZ0F%)&&rEC&9!B<Rb#~~*D0j%rk2tiUT{~o4,`N\y(PxPq*4<9>%&o^ +]]R6
Cancel-Lock: sha1:sxmRmVKb5gHvGP5ygirXJvAPrN0=
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit