Automatisation de tâches

Match Text




Comment utiliser le composant Match Text ?

Le composant Match Text dans Grasshopper permet de rechercher des correspondances entre des chaînes de caractères et un texte de référence. Il sert notamment à identifier, filtrer ou localiser des textes dans une liste de données.

Prenons un exemple avec le script ci-dessous :

Nous utiliserons dans un premier temps l'entrée Pattern. Cette entrée, ...

Le texte "Saphir" est trouvé à l'indice 1 de notre liste. Vous noterez que le composant tient compte de la casse du texte. En effet, l'entrée Case est, par défaut, sur la valeur booléenne True. Nous avons ajouté un Boolean Toggle pour visualer pour visualiser cette valeur. Match Text fait donc, ici, la distinction entre les majuscules et les minuscules d'un texte.



Gh Match Text
trouver le mot Saphir dans la liste initiale

Que se passe-t-il si l'on change la valeur True pour False ? Aucun changement notre exemple (voir image ci-dessous) ! Pourtant, il y a bien plusieurs occurences du mot saphir dans la liste initiale. Pourquoi ne les trouve-t-il pas ? Bien que le composant ne tienne plus compte de la casse en basculant sur False, les autres occurences de saphir contiennent d'autres caractères supplémentaires et en l'état ils n'arrivent pas à les identifier. Comment faire ?



Gh Match Text
trouver le mot Saphir dans la liste initiale






Utiliser des caractères spéciaux : astérisque (*)

Entrée Pattern. On peut y ajouter quelques caractères spéciaux pour enrichir la recherche de texte. Le plus simple et le plus connu, même en dehors du cadre de Grasshopper, est l'astérisque (*). A cette entrée, nous écrirons Saphir* (voir image ci-dessous) Pour rappel, le composant ne tient pas compte de la casse. Quel est le résultat ? Toutes les occurences de Saphir sont trouvées !

L'astérisque (*) signifie un nombre quelconque de caractères.



Gh Match Text
trouver le mot Saphir* dans la liste initiale en utilisant l'entrée Pattern

Entrée RegEx. Il s'agit en quelque sorte d'un autre moteur de recherche qui accepte la combinaison de plusieurs caractères spéciaux afin d'améliorer la pertinence de la recherche. Dans l'exemple précédent, nous avons ajouté un astérisque pour spécifier que nous acceptons tous les caractères derrière le mot Saphir. Regardez ce qui se passe si je place le mot Saphir dans l'entrée RegEx (voir image ci-dessous).

Toutes les occurences de Saphir sont trouvées sans pour autant ajouter un astérisque.



Gh Match Text
trouver le mot Saphir dans la liste initiale en utilisant l'entrée RegEx






Utiliser des caractères spéciaux : le point d'interrogation (?)

Entrée Pattern. Le point d'interrogation (?) indique que l'on souhaite trouver n'importe quel caractère unique. Pour mieux comprendre, prenons un exemple (voir image ci-dessous). Si je note 5 points d'interrogation derrière le mot saphir cela veut dire que je cherche toutes les occurences du mot saphir avec 5 caractères qui suivent, espace y compris. Le résultat dans notre exemple : "saphir Rose".



Gh Match Text
trouver le mot Saphir suivi de 5 caractères supplémentaires






Utiliser des caractères spéciaux : le hashtag (#)

Entrée Pattern. Le caractère Hastag (#) indique que l'on souhaite trouver n'importe quel chiffre unique. Prenons un exemple (voir image ci-dessous). En écrivant 3 hashtags derrière le mot diamant, nous cherchons toutes les occurences du mot diamant suivi de 3 chiffres. Ni plus ni moins.



Gh Match Text
trouver le mot diamant suivi de 3 chiffres

Voici les principaux caractères que l'on peut utiliser avec l'entrée Pattern.

Intéressons-nous maintenant à l'entrée Pattern qui offre encore plus de possibilité mais qui demande de connaitre un nouveau langage. Nous nous concentrerons sur quelques caractères utiles.






Utiliser des caractères spéciaux : le point (.)

Entrée RegEx. Le caractère point (.) indique que l'on souhaite trouver n'importe quel caractère. Dans notre exemple, ci-dessous, tous les mots de notre liste sont identifiés et donne une valeur booléenne True. Les deux lignes vides ou empty donnent au contraire la valeur False. C'est un bon moyen d'identifier la présence ou non d'un élément dans une liste.



Gh Match Text
trouver n'importe quel caractère dans une liste