Bonjour,
J'aimerais savoir comment rajouter des accent dans mon code regex ?

preg_match_all('(([0-9]+) +([0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}):([0-9]+) +([0-9]+) +([a-z0-9]+)\(OK\) +([a-zA-Z ]+))', $rcon->get_players(), $matches);

Car il ne me prend pas les é à è â ê et tout le reste

4 réponses


Yop.

Une des solutions est de remplacer tous les accents de la chaine de caractère par sa lettre sans accent. :c

Cobryn
Auteur

Merci !
Mais comment faire ça : ) ?

Bonjour,

[a-z0-9áàâäãåçéèêëíìîïñóòôöõúùûüýÿæœÁÀÂÄÃÅÇÉÈÊËÍÌÎÏÑÓÒÔÖÕÚÙÛÜÝŸÆŒ]

Non en fait oublions ma solution, il y a plus simple.: https://regex101.com/r/vK5jH5/1 - https://regex101.com/r/vK5jH5/2

$players = '                Players on server:
[#] [IP Address]:[Port] [Ping] [GUID] [Name]
--------------------------------------------------
0   85.042.241.128:2304     0    b2f68915803ee795a7d6711417c26d014(OK) Jöe Dalton
1   101.092.64.15:2304    47   bcadb61d88e22cd56ec53b848fdafd3fe(OK) Marcus Garvey
2   86.510.210.38:2304   31   fb01878d546ed4d4a85bfebd57dd793f7(OK) Matravo Yuri
3   101.920.64.14:2304  93   e4621b6d996a323023969da45815a505a(OK) Bill Zelouf
4   188.142.23.31:2304  32   0eed35681d5be9690d3cdab72e7e8fda8(OK) Mike Connor
5   671.141.519.242:2304    47   b88492f891351d24ad3d8ca374390c0fb(OK) Vassili Zakharov
6   710.151.142.125:2304   31   554dd681a3d455b3730da516fa3976a6a(OK) Tonny Zelouf
7   59.74.472.182:2304    15   118a3fa279d3c2541a6021a7806a691b0(OK) Paco Kosova
8   59.224.58.411:2304      31   9b18d9184be712f8634cf157de18a4003(OK) Charlie Requiem
(9 players in total)       ';

if (preg_match_all('#^([0-9]+) +([0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}):([0-9]+) +([0-9]+)\s+([a-z0-9]+)\(OK\)\s+([\pL0-9\s]+)$#imu', $players, $matches)) {
    print_r($matches);
}

(PS: J'ai pris la chaine de caractère d'une de tes anciennes publications sur ce forum)
(PS2: ce sont des ips trouvés sur le net, prxy)
(PS3: et ça fonctionne.)