Bonjour,
Voici mon problème, j'ai un code regex qui est censé recupéré toutes les lignes sauf que ça ne le fait pas (cf.screen):
https://gyazo.com/a36ab426018a1d7199fdc6cac3f1605f

Je n'arrive pas a faire en sorte qu'il recupére toute les lignes, par exemple il ne prend pas 3 4 5 6 7

Texte:

Players on server:
[#] [IP Address]:[Port] [Ping] [GUID] [Name]
--------------------------------------------------
1   176.151.105.237:2304  27   fb553373dbf7a39390a42b69ee66ae44(OK) [B-W]Parol
2   78.231.122.136:27395  19   89c8dc956d8d7d53f48c778a35d544d3(OK) Kyle Sion
3   89.94.118.80:27395    52   6597438842978af54611d784611c333b(OK) Sgt. Oslix Berkanof
4   77.204.138.35:2304    61   099cdd3dc44c01865312efb329c16cb5(OK) Sdt. Michel Pélo
5   77.201.243.215:2304   126  717e215445aa54a4dc42a568a82c8d0f(OK) [A3M] internet Bxnk
6   82.123.174.249:2304   24   234707f2e8689d553ed02a2bb001914a(OK) Arnaud [TSO]
7   31.33.14.104:2304     19   dcb90ba39afc105d392106ba08e197e2(OK) --[ STAFF ]--Edwardd.c
8   109.129.150.189:51529 27   9c67062e8921b775bb826fe8898ebd72(OK) Manu Zwift
9   78.236.55.90:2304     12   0d6722e3a127f0ea5725576bd88c6188(OK) [A3M] Luigi Vicoleti 
10  92.171.6.203:2304     17   6f6de7bd694d46de36594fcd2cbb176d(OK) Léonard Mantus
11  80.12.43.21:62720     66   1edccb26648b278d49f3605f2e47cb3d(OK) [TSO] Joe Taldon
12  78.223.73.134:2304    35   976c938c99c8b1dbbaaed45983bea452(OK) Théo Werl
13  84.103.178.146:2304   33   f405a65def01b5bb8fb4e7cbd658649d(OK) Matis Lod
14  78.239.190.189:2304   10   18cd7a1fe50e3fa4b064ae0199562d94(OK) [18thS] Lucky Luciano
15  88.187.196.197:2304   41   e8ca5dcb2777ac705c4bf791cab546de(OK) Sdt. Tom.N
16  84.7.63.252:2304      27   cb1d3d0601baf6a16946620e3aff3e3e(OK) -[ STAFF ]-  Dixon Red
18  85.168.54.244:2304    18   dbf90a14d4832529dc58f14a3e30baed(OK) Mani Wolf
21  82.247.252.101:2304   25   f37da539246c6827f40930f02f0559dd(OK) --[ STAFF ]--  PaPy
23  79.91.46.86:2304      38   02cc93a159fb6bb459a647342131ecbb(OK) [18thS]Sudrak Kuruma
25  89.2.117.194:2304     29   eb551e86dd39d5579ebe13a81dfc5ce7(OK) [A3M]  Blew Shark
26  90.45.23.105:2304     22   6d19b47c6f56a3056a22f981520f6d02(OK) Capl. Quentin Xavier
27  90.37.182.216:27395   33   d103155dd077055b933ab708bb1c28df(OK) Sdt. Nyxou.N
33  178.83.49.163:2304    35   f954c7679aba6e45c096270d693d0516(OK) [18thS] NMartins 
35  88.184.135.193:27395  15   ef27d057064f0b25e15a6da7455107b8(OK) [MLA-Chef] C. Kawanski
36  144.85.173.9:53598    38   0291c8e77673f5ed9ba741a001fe5feb(OK) Gen. Allod Harrinson
39  78.123.186.252:2304   60   69291ac7c2e93f6b706e61508217af18(OK) [MLA] Roman Kawanski
(26 players in total)

Merci d'avance

10 réponses


Huggy
Réponse acceptée

Le point, si c'est bien pour matcher le nom du joueur, c'est dans le dernier bloc de parenthèses

...  \(OK\)\s+(.+)$

Dans le nom du joueur, il faut aussi prendre les crochets, les points et les tirets

Bonsoir.
Si tu nous montrais ta regex, ça pourrait nous permettre de te dire ce que tu pourrais y modifier pour corriger le problème.

@Lartak la regex est dans l'image

A vue de nez (j'ai mis que la fin)

...  \(OK\)\s+([\pL0-9\s\-\[\]\.]+)$
Cobryn
Auteur

Salut !

Huggy c'est parfait ! ça résoud le problème, petite question, pour ajouter tout les accents dans le pseudo et les caractères spéciaux comment je peut fire ?

Tu peux regarder la doc php ici , sinon pour ne pas s'embêter, utilise le '.' qui match n'importe quel caractère. (à tester sur l'unicode !!!)
Quel est l'outil que tu as utilisé dans ton image ?
Edit : pour la ponctuation essaye \p{P}

Cobryn
Auteur

Le site ?
Celui ci:
https://regex101.com/

Mais par contre je le met ou le . ?

Perso j'utilise le site http://www.gethifi.com/tools/regex
Et avec cette regex, je capture tout sans probleme :)

([\d]+)(?:[\s]+)([\d\.]+):([\d]+)(?:[\s]+)([\d]+)(?:[\s]+)([\d\w]+)(?:\(OK\))(?:[\s]+)([^\r\n]+)

Pour les chiffres et séparateur, j'utilise les raccourcis:
\d = 0-9
\w = a-zA-Z
\S = Whitespace
?: pour ne pas capturer
Pour le pseudo je récupère tout ce qui n'est pas un retour a la ligne \r et/ou \n.

Alors @Cobryn ?