[PHP] expressions régulière

Résolu
tsunamidream Messages postés 283 Statut Membre -  
P@t@ch0n Messages postés 603 Statut Membre -
Bonjour,

J'ai un script PHP qui lit un fichier texte ligne par ligne.
J'ai fais une regex qui recherche une expression sur cette ligne.
Cependant, avec le changement de moi cette regex ne fonctionne plus et je ne sais pas comment la modifié correctement.

Lorsque le jour était à 2chiffres cela fonctionnait bien :
Tue Sep 29 09:56:38 2009
'#^[A-Z][a-z]{2} [A-Z][a-z]{2} [0-9]{1,2}[ ([0-9]{2}:){2}[0-9]{2} [0-9]{4}#'

Maintenant, ca ne fonctionne plus avec cette ligne :
Thu Oct 1 11:57:50 2009
Le chiffre des dixaines est remplacé par un espace.

Je ne peux modifier les lignes que je lis car elles sont générées par un logiciel.

Merci pour votre aide,
A voir également:

4 réponses

Alain_42 Messages postés 5413 Statut Membre 894
 
et si tu rajoutes l'espace dans [0-9]

'#^[A-Z][a-z]{2} [A-Z][a-z]{2} [0-9 ]{1,2}[ ([0-9]{2}:){2}[0-9]{2} [0-9]{4}#' 
0
P@t@ch0n Messages postés 603 Statut Membre 85
 
Cela m'étonnerait que cette expression fonctionne.

Il y a un crochet ouvrant en trop juste après ce que tu as mit en gras.
0
tsunamidream Messages postés 283 Statut Membre 59
 
Oui j'ai vu trop tard pour le crochet ouvrant c'est lors du copié collé que j'ai fait une erreur.

Mais après plus d'une heure de recherche j'ai fini par trouver quelque chose. C'est peut être pas la méthode la plus simple mais ça a le mérite de fonctionner.

#^[A-Z][a-z]{2} [A-Z][a-z]{2} ((\s[0-9])|([0-9]{2})) ([0-9]{2}:){2}[0-9]{2} [0-9]{4}#

merci à tous.
0
P@t@ch0n Messages postés 603 Statut Membre 85
 
Pourquoi ne pas utiliser tout simplement un quantificateur sur les espaces ?

'#^[A-Z][a-z]{2} +[A-Z][a-z]{2} +[0-9]{1,2} +([0-9]{2}:){2}[0-9]{2} +[0-9]{4}$#'


Et si il peut y avoir des tabulations, utilise :blank:

'#^[A-Z][a-z]{2}:blank:+[A-Z][a-z]{2}:blank:+[0-9]{1,2}:blank:+([0-9]{2}:){2}[0-9]{2}:blank:+[0-9]{4}$#'


Ajoute une double paire de crochet autour de :blank:, ccm interprète ça comme des liens...
0