Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Probleme avec une expression rationnell e :-)

2 réponses
Avatar
Gilles FEVRIER
Salut,

Je pense qu'il s'agit d'un problème tout bête, mais je tourne un peu en
rond...

Je souhaite lire un fichier et repérer toutes les lignes de la forme :

<JJ/MM/AAA> <HH:MM:SS> <1 chiffre> <4 caractères> <une chaîne de caractères>

Exemple :

01/11/2006 00:00:58 4 0100 Erreur supervision

J'utilise l'expression suivante avec la fonction "preg_match" :

$sPattern =
"/(\d{2}\S\d{2}\S\d{4})\s+(\d{2}:\d{2}:\d{2})\s+(\d{1})\s+(\w{4})\s+(\.*)/s";

Je sais, il y a certainement plus simple. :-)

L'expression est reconnue, le seul soucis, c'est que la dernière partie,
le message, n'est pas ramené, et je ne comprend pas pourquoi.

Le tableau retourné donne ça :

Array
(
[0] => 01/11/2006 00:00:58 4 0100
[1] => 01/11/2006
[2] => 00:00:58
[3] => 4
[4] => 0100
[5] =>
)

Mais où est donc passée la dernière partie ? :-)

A+

Gilles

2 réponses

Avatar
Christophe PEREZ
Le Fri, 24 Nov 2006 15:34:10 +0000, Gilles FEVRIER a écrit:

$sPattern =
"/(d{2}Sd{2}Sd{4})s+(d{2}:d{2}:d{2})s+(d{1})s+(w{4})s+(.*)/s";

L'expression est reconnue, le seul soucis, c'est que la dernière partie,
le message, n'est pas ramené, et je ne comprend pas pourquoi.


A cause du "" ?
Si tu mets "(.*)/s" à la place du "(.*)/s", ça ne marche pas mieux ?
Ceci dit, est-ce bien un "/s" qu'il faut mettre ? Tous les enregistrements
sont sur la même ligne ? Sinon, un "$" ferait l'affaire.

--
Christophe PEREZ
Écrivez moi sans _faute !

Avatar
Gilles FEVRIER
Bonsoir,

Le Fri, 24 Nov 2006 15:34:10 +0000, Gilles FEVRIER a écrit:

$sPattern =
"/(d{2}Sd{2}Sd{4})s+(d{2}:d{2}:d{2})s+(d{1})s+(w{4})s+(.*)/s";

L'expression est reconnue, le seul soucis, c'est que la dernière partie,
le message, n'est pas ramené, et je ne comprend pas pourquoi.


A cause du "" ?
Si tu mets "(.*)/s" à la place du "(.*)/s", ça ne marche pas mieux ?
Ceci dit, est-ce bien un "/s" qu'il faut mettre ? Tous les enregistrements
sont sur la même ligne ? Sinon, un "$" ferait l'affaire.


Oui, c'était bien le ""... je m'en suis aperçu juste après avoir posté
le message, mais comme il n'apparaissait pas tout de suite, je n'ai pas
pu dire que c'était résolu... 8-]

Merci quand même. :)

Gilles