{{tag>dev regex}} ====== Regex: Sélectionner le mot après le début de la correspondance ====== On souhaite pouvoir sélectionner un mot après le début du motif sur lequel commence la correspondance. Pour illustrer ce besoin nous avons une ligne de log générée par UFW: un 8 18:19:02 node-7c87 kernel: [34684.553602] [UFW BLOCK] IN=enp0s31f6 OUT= MAC=84:2a:fd:56:7c:87:00:50:56:bf:87:1b:08:00 SRC=192.9.200.231 DST=192.9.200.14 LEN=48 TOS=0x00 PREC=0x00 TTL=128 ID=22420 DF PROTO=TCP SPT=64327 DPT=21 WINDOW=8192 RES=0x00 SYN URGP=0 On cherche par exemple à récupérer le nom de l'interface d'entrée journalisé sous la forme ... IN=enp0s31f6 ... Le nom de l'interface dans cet exemple est **enp0s31f6** Le motif suivant sélectionne bien le nom de l'interface mais également le préfixe "IN=" ^ Motif ^ Correspondance | | %%\bIN=\w*%% | IN=enp0s31f6 | Le modificateur **\K** permet de redéfinir le point de départ de la correspondance. Il peut être utilisé ainsi: ^ Motif ^ Correspondance | | %%\bIN=\K\w*%% | enp0s31f6 | ==== Définir des groupes ==== ===== Références ===== * https://stackoverflow.com/questions/19193251/regex-to-get-the-words-after-matching-string