gudn tach!
preg_replace("![\w|.|-].pdf[\w|.|-]!","_",$test);
mit [] werden zeichenklassen definiert. gruppiert wird mit ().
es kommt das hier raus:
yeshans_tdsaf432_xciRauskommen sollte aber:
yeshans_tdsaf432.xci
willst du alle punkte durch underscores ersetzen, die nicht, das viertletzte zeichen sind? dann brauchst du nicht mal regexp, sondern kannst einfach str_replace auf einen substring anwenden.
oder was ist dein ziel?
prost
seth