reguliere expressie met tijd

Status
Niet open voor verdere reacties.

gebruiker35

Gebruiker
Lid geworden
29 mrt 2008
Berichten
434
Hallo,

heb een speciaal systeem, en daarin wordt regelmatig de tijd fout geplaatst. Officiele tijdsvermelding is 10:30, en geen 10.30. de punt moet dus vervangen worden met :. Ik had nu het volgende:

PHP:
$bericht = eregi_replace("([0-2])?([0-9])\.([0-5][0-9])","\\1\\2 : \\3", $bericht);

Ik zou dan met \\1 toch een deel uit vorige string kunnen halen? Kom er zelf niet echt uit...!
 
Als je tijden aan het parsen bent, kun je dan niet beter de ingebakken functies van PHP daarvoor gebruiken? Of ben je op zoek naar iets heel specifieks?
 
ingebakken functies in php.. ik denk dat je bedoelt dat je denkt dat ik het over de huidige tijd heb?

Nee, dat is niet zo!

Het gaat om berichten van bijv. een concert wat mensen via mail sturen. Maar de ene doet het met . en de ander met :. nu moet het namelijk altijd met :
 
Het gaat geloof ik niet om een datum terug krijgen maar om een typografische fout te verbeteren. Dan zul je wel een regex moeten gebruiken. Maar dan zou ik wel de preg_ functies gebruiken en niet de ereg_ functies.

Dit lijkt te werken iig:
PHP:
$bericht = "Het is nu 12:30 en het was net 12.29. Maarja, wat doe je eraan?";
$bericht = preg_replace("#([0-2]?[0-9])[.]([0-5][0-9])#","\\1:\\2", $bericht); 
print($bericht);
Geeft:
Het is nu 12:30 en het was net 12:29. Maarja, wat doe je eraan?



/edit:
regex is het zeker waard, ik ben hier begonnen met leren:
http://www.regular-expressions.info/
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan