J'ai cette regex qui est censée extraire des captures nommées d'une ligne de journal. Si la première regex échoue, elle est censée passer à une deuxième regex et l'essayer à la place. Voici donc mon code actuel :
captures = Regex.named_captures(first_regex, log)
if captures == nil do
captures = Regex.named_captures(backup_regex, log)
end
J'utilise cette méthode pour éviter d'exécuter deux regex si la première est une correspondance (suffisant dans mon scénario). Cette méthode génère un avertissement indiquant que the variable "captures" is unsafe as it has been set inside a case/cond/receive/if/&&/||. Please explicitly return the variable value instead.
Je pourrais le réécrire de cette façon pour qu'il cesse de lancer cet avertissement :
captures =
case Regex.named_captures(squid_re, log) do
nil -> Regex.named_captures(dante_re, log)
{:username} -> # How do I return with username?
end
mais, comme c'est mon premier jour avec elixir, je ne sais pas comment assigner ce nom d'utilisateur à l'adresse captures
variable. Vous avez des idées ?