Re: Help - regulerni vyraz v Perl

From: Daniel (ramoth@seznam.cz)
Date: 02. 12. 2003, 00:24 CET


> Nevedeli by jste nekdo jak by se dal udelat regulerni vyraz aby mi v PHP nebo
> radeji v Perl rozdelil celou cestu k souboru na cestu a jmeno a koncovku a aby
> to slo i kdyz je koncovek vice tak aby tam pak byla jen ta posledni? Ja to asi
> neumim poradne napsat takze asi takhle - aby z
> c:\moje\textove\soubory\zkouska.txt udelal tohle:
> c:\moje\textove\soubory
> zkouska
> .txt
> ale z
> c:\moje\textove\soubory\zkouska.txt.bak udelal tohle:
> c:\moje\textove\soubory
> zkouska.txt
> .bak
> Jo a tu cestu bez lomitka na konci a koncovku zas s teckou na zacatku. Ja PHP
> moc neumim ale umim trochu Perl ale ani tam moc neumim prave tyhlety regulerni
> vyrazy tak kdyby byl nekdo tak hodnej, diky moc. Jo a mam ActivePerl pod Win.
> =matlafa=

Hmmm. Umis _trochu_ Perl ale neumis regexy?? To uz ti pak z nej
k tomu umeni moc nezbude - vzdyt Perl s regexy temer stoji a pada.
A take jsou to REGULERNI vyrazy a ne regulArni. No ale budiz. :-)
Ja bych to udelal treba takto:

$fullname='h:/nekde/nejake/neco/soubor.txt.bak';
# .......
($path,$name,$ext)=$fullname=~/(^.+)[\/\\](.+)(\..*$)/i;

Udela to co chces a tak jak to chces. Zpracuje take stejne dobre
pathname jak s Unixovymi lomitky '/' tak backslashes '\'. Ale ja
osobne doporucuji v Perlu i v PHP pod Win pouzivat zasadne jenom
'/'. Je to jednodussi, efektivnejsi a program si s tim poradi sam.

V praxi bych ale spise pouzil modul File::Basename a udelal tohle:
($name,$path,$ext)=fileparse($out,'\..*');
Pravda ale je, ze to vrati path s lomitkem a vsechny extense od
(a vcetne) prvni tecky.

Daniel. 


____________________________________________________________
Udělejte radost svým blízkým i sobě. Vánoční katalog Braun přináší tisíce inspirací na vánoční dárky. Vyslovte přání a Braun Vám ho splní! 
http://seznam.hit.gemius.pl/hitredir/id=9X6rUA0WEAtM7sEWuY3lr@m7/id=9X6rUA0WEAtM7sEWuY3lr@m7/url=http://vanoce.novinky.cz/braun/index.php



This archive was generated by hypermail 2.1.3 : 02. 12. 2003, 00:24 CET