
probowalem setek patterns ale ciagle jestem w klopie
dla #1 nie chodza:
Kod
'/\..+$/'
'/\..+?$/'
'/\..+?(?!\.)$/'
\
tak to jest wyprzedzajacy znak, tylko nie wiem czy
logika tego nie odwrocila sie poprzez $
'/\..+?$/'
'/\..+?(?!\.)$/'
\
tak to jest wyprzedzajacy znak, tylko nie wiem czy
logika tego nie odwrocila sie poprzez $
dla #2
Kod
$replace = '/\.[\w\W]+$/';
$with = '';
preg_replace($replace,$with,$str);
$with = '';
preg_replace($replace,$with,$str);
(narazie jeszcze bez zwracania wartosci poprawnych -alphanumerycznych)
a i tak zle
inne:
Kod
'/\.[\w\W^\.]+$/'
'/\.[\w\W^\.]+?$/'
'/\.[\w\W[^\.]]+?$/'
'/\.[\w[\W[^\.]]]+?$/'
'/\.[\w\W&&[^\.]]]+?$/' //&& chodzace w javie, ale raczej nie w php
'/\.(?:\w|\W)+$/' //lub nawet bez []
'/\.(?:\w?|\W?)+$/'
'/\.[\w\W^\.]+?$/'
'/\.[\w\W[^\.]]+?$/'
'/\.[\w[\W[^\.]]]+?$/'
'/\.[\w\W&&[^\.]]]+?$/' //&& chodzace w javie, ale raczej nie w php
'/\.(?:\w|\W)+$/' //lub nawet bez []
'/\.(?:\w?|\W?)+$/'
pierwszy zamysl ze zwracaniem:
Kod
'/\.[(\w)\W^\.]+?$/'
'/\.(?:\(w?)|\W?)+$/'
$replacer = '\.$1';
'/\.(?:\(w?)|\W?)+$/'
$replacer = '\.$1';
czy mialby ktokolwiek jakis pomysl jak to rozwiazac?
pozdrawiam
michal
rozwiazalem

Kod
<?php
$replace = array('/[\[\{]/', '/[\]\}]/', //zamienic nawiasy [] {} na ()
'/(.*)\.(.*)$/e', //sformatowac rozszerzenie
'/[^\w\s\(\)\-`\.,;\+=#&!]|'. //zezwolic w nazwie pliku na _ -() `,.;+=!&#
'^[\s\.,;]*[!&\-#]+[\s,;!&\-#]*/', //sformatowac zjadliwy poczatek
'/^[\s\.,;]+|\s+(?=\s.)/'); //przyciac i skrocic wielokrotne spacje
$with = array('(',')',"trim('$1').'.'.preg_replace('~[\W]~','','$2')",'_','');
printt ('file|'.preg_replace($replace,$with,$str).'|'); //wlasna do wyrzucania wynikow na ekran
?>
$replace = array('/[\[\{]/', '/[\]\}]/', //zamienic nawiasy [] {} na ()
'/(.*)\.(.*)$/e', //sformatowac rozszerzenie
'/[^\w\s\(\)\-`\.,;\+=#&!]|'. //zezwolic w nazwie pliku na _ -() `,.;+=!&#
'^[\s\.,;]*[!&\-#]+[\s,;!&\-#]*/', //sformatowac zjadliwy poczatek
'/^[\s\.,;]+|\s+(?=\s.)/'); //przyciac i skrocic wielokrotne spacje
$with = array('(',')',"trim('$1').'.'.preg_replace('~[\W]~','','$2')",'_','');
printt ('file|'.preg_replace($replace,$with,$str).'|'); //wlasna do wyrzucania wynikow na ekran
?>

thx