|
<?php |
|
$chaine = <<<'EOS' |
|
1 |
|
Casemiro |
|
28, MDC 185 84 25 2220 3 2 9 - 1.4 83.8 3 2 7.54 |
|
2 |
|
Eden Hazard |
|
29, M(CGD),AC 175 74 9(1) 749 1 1 - - 1.2 85.1 0.6 1 7.50 |
|
3 |
|
Karim Benzema |
|
32, AC 185 81 25(1) 2221 14 6 - - 3.7 85 1.1 7 7.39 |
|
4 |
|
Daniel Carvajal |
|
28, D() 173 73 22 1980 1 5 8 - 0.6 86.5 1.3 3 7.28 |
|
5 |
|
Toni Kroos |
|
30, M(C) 183 76 23(1) 1880 3 5 1 - 1.8 93.6 0.5 2 7.26 |
|
6 |
|
Nacho |
|
30, D(CG) 180 76 4(1) 393 1 - 3 - 1.2 86.8 2.8 1 7.21 |
|
7 |
|
Marcelo |
|
31, D(G) 174 75 11 940 - 2 2 - 1.2 85.4 0.6 - 7.06 |
|
8 |
|
Raphael Varane |
|
27, D(C) 191 81 23 2070 2 1 2 - 0.4 86.9 2.8 1 7.04 |
|
9 |
|
Eder Militão |
|
22, D(C) 186 79 7(2) 633 - - 2 - 0.2 86.8 3.3 - 7.02 |
|
10 |
|
Ferland Mendy |
|
24, D(G),M(G) 180 73 12(4) 1130 - 1 4 1 0.4 85.9 1.1 - 6.99 |
|
11 |
|
Sergio Ramos |
|
34, D(C) 184 82 25 2220 5 - 7 - 1.2 90.7 2.2 - 6.94 |
|
12 |
|
Luka Modric |
|
34, M(C) 172 66 14(8) 1355 3 4 3 1 1 88.8 0.5 2 6.91 |
|
13 |
|
James Rodriguez |
|
28, MO(CGD) 180 75 4(3) 341 1 1 1 - 1.3 82.3 0.4 - 6.87 |
|
14 |
|
Federico Valverde |
|
21, M(CG) 182 78 14(8) 1266 2 4 1 - 0.9 87.3 0.9 - 6.84 |
|
15 |
|
Gareth Bale |
|
30, M(CGD),AC 185 81 11(3) 992 2 2 2 1 2.2 79.6 1.9 - 6.84 |
|
16 |
|
Thibaut Courtois |
|
27, GB 199 96 24 2160 - - - - - 73.8 0.2 - 6.81 |
|
17 |
|
Lucas Vázquez |
|
28, M(D) 173 70 6(8) 640 2 1 1 - 0.6 82.4 0.1 - 6.74 |
|
18 |
|
Isco |
|
28, MO(CGD),AC 176 79 11(5) 875 1 - 1 - 1.1 87.5 0.4 - 6.71 |
|
19 |
|
Vinícius Júnior |
|
19, MO(G) 176 73 8(11) 901 2 1 3 - 1.6 80.1 0.1 - 6.69 |
|
20 |
|
Rodrygo |
|
19, MO(CGD) 174 64 8(4) 666 2 - - - 0.9 89.4 0.3 - 6.69 |
|
21 |
|
Álvaro Odriozola |
|
24, D() 176 66 4 344 - 1 1 1 0.5 91.1 - - 6.49 |
|
22 |
|
Luka Jovic |
|
22, AC 182 85 4(11) 392 2 1 2 - 0.9 80.8 0.9 - 6.39 |
|
23 |
|
Alphonse Areola |
|
27, GB 195 94 3 270 - - 1 - - 79.2 - - 6.28 |
|
24 |
|
Mariano |
|
26, AC 180 76 0(2) 22 1 - - - 2 83.3 1 - 6.26 |
|
25 |
|
Brahim Díaz |
|
20, MO(G) 171 68 0(3) 23 - - - - - 77.8 - - 6.03 |
|
EOS; |
|
|
|
$pattern = <<<'EOP' |
|
~ |
|
# début de la chaîne ou nouvelle ligne |
|
# première ligne |
|
# (?:^|\R) |
|
\d+\s* |
|
# saut de ligne |
|
# deuxième ligne |
|
\R |
|
# nom du joueur |
|
(?P<joueur>.+) |
|
# saut de ligne |
|
# troisème ligne |
|
\R |
|
# colonne 1 : un nombre |
|
\d+ |
|
, |
|
\s+ |
|
# colonne 2 : poste |
|
\S+ |
|
\s+ |
|
# colonne 3 : entier |
|
\d+ |
|
\s+ |
|
# colonne 4 : entier |
|
\d+ |
|
\s+ |
|
# colonne 5 |
|
\S+ |
|
\s+ |
|
# colonne 6 : entier |
|
\S+ |
|
\s+ |
|
# colonne 7 : entier ou "-" ? |
|
\S+ |
|
\s+ |
|
# colonne 8 : entier ou "-" ? |
|
\S+ |
|
\s+ |
|
# colonne 9 : entier ou "-" ? |
|
\S+ |
|
\s+ |
|
# colonne 10 : entier ou "-" ? |
|
\S+ |
|
\s+ |
|
# colonne 11 : entier ou "-" ? |
|
\S+ |
|
\s+ |
|
# colonne 12 : flottant |
|
(?:\d+\.\d+) |
|
\s+ |
|
# colonne 13 : flottant ou "-" ? |
|
\S+ |
|
\s+ |
|
# colonne 14 : flottant ou "-" ? |
|
\S+ |
|
\s+ |
|
# colonne 15 : flottant |
|
(?P<note>\d+\.\d+) |
|
~x |
|
EOP; |
|
preg_match_all($pattern, $chaine, $matches, PREG_SET_ORDER); |
|
#var_dump($matches); |
|
$i = 0; |
|
foreach ($matches as $m) { |
|
echo ++$i, ' ', $m['joueur'], ' : ', $m['note'], PHP_EOL; |
|
} |