Autor Zpráva
Darkry
Profil
Zdravím,

moc s regulárníma výrazama nepracuju a teď mám takovej problém, nad kterým už chvíli sedim a ne a ne na něj přijít.

Mám řetězec s cestou k souboru ve tvaru asi:
C:\xampp\htdocs\Application\app\AdminModule\TextModule\presenters\TextPresenter.php
a potřebuju z toho dostat:
C:\xampp\htdocs\Application\app\AdminModule\TextModule

Cesta se samozřejmě bude měnit a co vim pevně je, že potřebuju odříznoout z konce toto: \presenters\nejakyNazev.php

zkoušel jsem něco jako:
$path = preg_replace("~^([a-zA-Z1-9\\: \/\-_]+)presenters[a-zA-Z1-9\: \\/\-_\.]+~", "\\1", $path)

Což sice projde bez syntaktické chyby, ale řetězec to nezmění. Jaký je nejjednodušší způsob jak tohle udělat?

Díky
DJ Miky
Profil
Třeba odstranit presenters\něco.php na konci řetězce takto:
$path = preg_replace('~\\\\presenters\\\\[^\\\\]+\\.php$~', '', $path);

Ovšem bude to fungovat pouze na Windows, na unixovém systému budeš mít v cestě normální lomítka, tak je potřeba s tím počítat.
Darkry
Profil
Díky moc! Musim to nějak prozkoumat :-)

A jak by se to dalo upravit na ty normální? něco jako:
[\\\\|/] ?
Camo
Profil
Tam to nepatri. To je súbor zakázaných znakov. ~(\\\\|/)presenters(\\\\|/)[^\\\\]+(\\|/).php$~
Neviem či sú tie lomítka dobre oescapované. Hádam hej...

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0