Autor Zpráva
Prochy
Profil
Zdravim,

mám následující zápis:
$event='text EVENT_TIME(\'%h:%i\') text';

A potřeboval bych z dostat ten formát %h:%i. Dokážu dostat z toho EVENT_TIME("FORMAT"), ale nedokážu poté ještě dostat pouze ten formát. Vezmu to i s uvozovkami. Tak mě zajímalo, jestli je možné pomocí reguláru to vyjmnout, nebo mám použít např. trim, který mi ty uvozovky odstraní?

$event='text EVENT_TIME(\'%h:%i\') text';
        
$eventTimeReg = '/EVENT_TIME\([",\'][\S,\s]+[",\']\)/';
preg_match($eventTimeReg, $event, $matches);
dump($matches);
$formatTimeReg = '/["\']+[\S,\s]+[",\']+/';
preg_match($formatTimeReg, $matches[0], $matches);

Edit: Aha, tak jsem se trochu přepočítal, myslel jsem, že to vyhledá i více položek EVENT_TIME("FORMAT"), pokud to tam je vícekrát, a rozparsuje mi to do pole. Tak to je druhá otázka, jestli to je možné?

Pokud mám např:
$event='text EVENT_TIME(\'H:i\') text zkouska EVENT_TIME(\'H:H\') fasdfsad';
Tak mi to najde regulárem:
0 => "EVENT_TIME('H:i') text zkouska EVENT_TIME('H:H')" (48)

Předem díky, za odpověď
Xethilos
Profil
Jedna z možností:
$preg = "EVENT_TIME('H:i') text zkouska EVENT_TIME('H:H')";

preg_match_all('#EVENT_TIME\(\'([^\']+)\'\)#', $preg, $matches);

var_dump($matches);
Prochy
Profil
Super, funguje skvěle. Díky moc.

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: