Autor Zpráva
nowis
Profil
Zdravím,

můžete mi prosím poradit, jak na jeden společný regex, který by mi chytil "Jak psát web" a "Jak něco udělat"

z těchto textů: "Jak psát web" a "Jak psát web (K,L)" a "Jak něco udělat" a "Jak něco udělat (M)"

Tedy jde mi o eliminaci těch závorek, jejich obsahu a mezery před.

Děkuji
nowis
Profil
...použil jsem preg_replace (taky mně to mohlo napadnout hned)

Nicméně, stejně by mně zajímalo, jak to vyřešit čistě s regex
juriad
Profil
Co se ti nelíbí na nahrazení za nic všeho od mezery před závorkou počínaje?

preg_match('/(.*?) \(.*/', $text, $parts);
Počáteční text bude v $parts[1]
nowis
Profil
juriad:
no řekl bych, že pokud bude $text = "Jak psát web" tak to nechytí nic, protože tam chybí právě ta část se závorkou
Keeehi
Profil
nowis:
protože tam chybí právě ta část se závorkou

Tak je tu možnost tu část označit jako nepovinnou.
preg_match('~(.*?)(?: \(.*)?~', $text, $parts);

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

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