Table des matières

,

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