Zadejte hledaný výraz...

Použití preg_replace

Jakub Šrutka
verified
rating uzivatele
(31 hodnocení)
11. 12. 2011 12:21:34
mám pro mě neřešitelný problém.. mám několik tisíc php řetězců a potřebuji z nich v případe výskytu odstranit určité věty, které začínají specifickým slovem či spojením a končí tečkou. Text před touto větou i po ní musí zůstat zachován.
příklady nechtěných vět:
slovo1 nahodny text text text.
nechtena fraze2 nahodny text text text.
dalsislovo3 nahodny text text text.
slovo4 nahodny text text text.
aslovo5 nahodny text text text.
poradí prosím někdo jak správně zapsat regulární výraz pro fci preg_replace?
11. 12. 2011 12:21:34
https://webtrh.cz/diskuse/pouziti-preg_replace/#reply706425
hm
verified
rating uzivatele
(20 hodnocení)
11. 12. 2011 12:24:11
$text = preg_replace(array('~Slovo1(+?).~i', '~Nechtěná fráze 2(+?).~i', '~dalsislovo3(+?).~i'), '', $text);
nebo mozna lepe
$text = preg_replace('~(Slovo1|Nechtěná fráze 2|dalsislovo3)(+?).~i', '', $text);
11. 12. 2011 12:24:11
https://webtrh.cz/diskuse/pouziti-preg_replace/#reply706424
Jakub Šrutka
verified
rating uzivatele
(31 hodnocení)
11. 12. 2011 12:42:03
super, díky! rep + a kdybych chtěl odstranit zbytek textu, tedy ne k první tečce?
11. 12. 2011 12:42:03
https://webtrh.cz/diskuse/pouziti-preg_replace/#reply706423
hm
verified
rating uzivatele
(20 hodnocení)
11. 12. 2011 12:44:40
tak proste na konci regularu nedas (+?). ale misto toho tohle (.*)
11. 12. 2011 12:44:40
https://webtrh.cz/diskuse/pouziti-preg_replace/#reply706422
Jakub Šrutka
verified
rating uzivatele
(31 hodnocení)
11. 12. 2011 12:54:06
tak to bylo nez jsi to editoval, a fungovalo to k te prvni tecce od vyskytu dane fraze, stejne tak (+?).
potreboval bych jeste moznost ukonceni retezce pred mistem vyskytu...?
11. 12. 2011 12:54:06
https://webtrh.cz/diskuse/pouziti-preg_replace/#reply706421
hm
verified
rating uzivatele
(20 hodnocení)
11. 12. 2011 13:01:30
ne nebylo, je tam rozdil v . na konci (udava konec vety - tecku)
smazani vety zacinajici frazi
$text = preg_replace('~((.|!|?|^)s*)(Slovo1|Nechtěná fráze 2|dalsislovo3)(+?).~i', '$1', $text);
smazani vety i vseho za ni
$text = preg_replace('~((.|!|?|^)s*)(Slovo1|Nechtěná fráze 2|dalsislovo3)(.*?)~i', '$1', $text);
smazani vseho pred vetou
$text = preg_replace('~(.*?)(.|!|?)s*(Slovo1|Nechtěná fráze 2|dalsislovo3)~i', '$2', $text);
btw za fcnost nerucim, vycucal sem si to z prstu narychlo, takze by bylo idealni v pripade nefcnosti vzit k ruce syntax na regularnivyrazy.info a tester an te same adrese a trochu zaexperimentovat
11. 12. 2011 13:01:30
https://webtrh.cz/diskuse/pouziti-preg_replace/#reply706420
Jakub Šrutka
verified
rating uzivatele
(31 hodnocení)
11. 12. 2011 13:12:07
diky moc za osvetleni:) priznavam ze v tomhle mam veeeelke mezery, ale uz mi to dava smysl!
11. 12. 2011 13:12:07
https://webtrh.cz/diskuse/pouziti-preg_replace/#reply706419
Pro odpověď se přihlašte.
Přihlásit