Filtre d'une sous-chaîne correspondant à un modèle à partir d'une ansible variable et attribuer des sous-chaîne correspondante à une autre variable
Disons que nous avons un long ansible variable de chaîne mystr
. Nous avons une expression régulière pattern dire substr_pattern
et une sous-chaîne correspondant à ce modèle est d'être filtrés à partir de mystr
et à être affecté à une autre variable substr
. Il semble y avoir aucun moyen évident de le faire dans ansible de docs sur playbook_filters si elle est simple à faire avec re
module en python lui-même.
Il y a 3 méthodes donné dans l'ansible docs et aucun d'eux ne semble pour résoudre mon problème:
match
: Ce filtre retourne true/false selon que le modèle correspond à l'ensemble de la chaîne, mais ne retourne pas appariés groupe/sous-chaîne.search
: Utilisé pour filtrer substr dans une grande chaîne. Mais commematch
, ne renvoie vrai/faux et ne correspond pas groupe/sous-chaîne qui est nécessaire ici.regex_replace
: Ceci est utilisé pour remplacer un motif correspondant à une chaîne par une autre chaîne. Mais il n'est pas clair comment enregistrer de la sous-chaîne/groupe correspondant au motif correspondant dans une nouvelle variable.
Est-il quelque chose que je suis absent? Ou est-ce une fonctionnalité manquante dans ansible?
Ansible Version: 2.1
Exemple:
mystr: "This is the long string. With a url. http://example.org/12345"
pattern: "http:\/\/example.org\/(\d+)"
substr: 12345 # First matched group i.e. \
Résumé: Comment obtenir de la sous-chaîne correspondant à la pattern
de mystr
et s'inscrire qu'à un ansible variable substr
?
OriginalL'auteur Pranjal Mittal | 2016-06-06
Vous devez vous connecter pour publier un commentaire.
Si vous pouvez modifier le motif, vous pouvez utiliser le
regex_replace
filtre et remplacer l'ensemble de la chaîne avec seulement les paires de chiffres.D'affecter le résultat à une variable, vous pouvez utiliser le
set_fact
module.match_obj.groups()[index]
OriginalL'auteur udondan