[PHP] expressions régulière

Résolu/Fermé
tsunamidream Messages postés 262 Date d'inscription dimanche 26 avril 2009 Statut Membre Dernière intervention 14 août 2011 - 1 oct. 2009 à 13:42
P@t@ch0n Messages postés 565 Date d'inscription mercredi 15 avril 2009 Statut Membre Dernière intervention 28 décembre 2009 - 1 oct. 2009 à 18:34
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 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
1 oct. 2009 à 14:02
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 565 Date d'inscription mercredi 15 avril 2009 Statut Membre Dernière intervention 28 décembre 2009 85
1 oct. 2009 à 14:04
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 262 Date d'inscription dimanche 26 avril 2009 Statut Membre Dernière intervention 14 août 2011 59
1 oct. 2009 à 15:03
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 565 Date d'inscription mercredi 15 avril 2009 Statut Membre Dernière intervention 28 décembre 2009 85
1 oct. 2009 à 18:34
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