Bonjour,

voila je galere un peu sur une expression reguliere que je dois mettre à jour, donc celle-ci fonctionne mais je ne comprends pas le comportement de preg_match_all ici en l' occurrence.

Donc voici mon pattern:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
$sRegexp = '/\s*\d+\.\d+\s*,\s*\d+:\d+\s*,\s*\d+\s*,\s*([^\s,]+)\s*,\s*(\d+)\s*,\s*(\d+)\s*,\s*(.*?)\s*,.*[\n\r]+/';
Voici la chaine a analyser (il s'agit en fait du output direct d'un fichier)

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
$sString="
25.02,16:07,    0,47C2D9AF,9880,8,Playback Alarm,,,,,,
25.02,16:07,    0,47C2D9B0,9880,8,Playback Alarm,,,,,,
"
Et donc en faisant:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
preg_match_all($sRegexp, $sString, $aAlarms, PREG_SET_ORDER);
J'obtiens:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
$aAlarms = 
    [0] => Array
        (
            [0] => 25.02,16:07,    0,47C2D9AF,9880,8,Playback Alarm,,,,,,
 
            [1] => 47C2D9AF
            [2] => 9880
            [3] => 8
            [4] => Playback Alarm
        )
 
    [1] => Array
        (
            [0] => 25.02,16:07,    0,47C2D9B0,9880,8,Playback Alarm,,,,,,
 
            [1] => 47C2D9B0
            [2] => 9880
            [3] => 8
            [4] => Playback Alarm
        )
Donc voila je comprends bien le contenu de $aAlarms[0][0], par contre comment a-t-on fait pour obtenir $aAlarms[0][1],[0][2],[0][3],[0][4] ?

Quelle partie de l'expression reguliere a permis ceci?

Merci de votre aide!