J'écris une configuration de battement de fichier lorsque je fais correspondre si une ligne commence par un nombre comme 03:32:33 (un horodatage). Je le fais actuellement par-
\d
Mais ce n'est pas reconnu, y a-t-il autre chose que je devrais faire. Je ne suis pas particulièrement bon/j'ai de l'expérience avec l'expression régulière. Votre aide sera appréciée.
Le vrai problème est que filebeat ne prend pas en charge \d
.
Remplacer \d
par [0-9]
et votre expression régulière fonctionnera.
Je vous suggère de jeter un oeil à la filebeat Patterns pris en charge .
Assurez-vous également que vous avez utilisé ^
, il représente le début de la chaîne.
Regex: (^\d)
1st Capturing group (^\d)
^ Match at the start of the string
\d match a digit [0-9]
Vous pouvez utiliser cette expression régulière:
^([0-9]{2}:?){3}
Assert position at the beginning of the string «^»
Match the regex below and capture its match into backreference number 1 «([0-9]{2}:?){3}»
Exactly 3 times «{3}»
You repeated the capturing group itself. The group will capture only the last iteration. Put a capturing group around the repeated group to capture all iterations. «{3}»
Or, if you don’t want to capture anything, replace the capturing group with a non-capturing group to make your regex more efficient.
Match a single character in the range between “0” and “9” «[0-9]{2}»
Exactly 2 times «{2}»
Match the character “:” literally «:?»
Between zero and one times, as many times as possible, giving back as needed (greedy) «?»
Vous pouvez utiliser:
^\d{2}:\d{2}:\d{2}
Le caractère ^ correspond au début d'une ligne.