web-dev-qa-db-fra.com

Utilisation de regex dans la validation de données Google Sheets

J'essaie d'utiliser une expression rationnelle dans la validation des données Google Sheets afin d'interdire la saisie de caractères spéciaux. Mon ensemble autorisé doit donc être [a-zA-Z0-9,./()].

J'utilise l'entrée de formule personnalisée avec la =REGEXMATCH(TO_TEXT(range),"^[^a-zA-Z0-9,./()]") suivante, mais elle rejette maintenant tout, y compris ce qui est dans mon ensemble autorisé.

J'ai également essayé les variantes suivantes et les résultats sont les mêmes que ci-dessus, tout est rejeté:

=REGEXMATCH(TO_TEXT(range),"^[a-zA-Z0-9,./()]")

=REGEXMATCH(TO_TEXT(range),"[a-zA-Z0-9,./()]")

=REGEXMATCH(TO_TEXT(range),"[^a-zA-Z0-9,./()]")

=REGEXMATCH("[a-zA-Z0-9,./()]")

=REGEXMATCH("[^a-zA-Z0-9,./()]")

=REGEXMATCH("^[a-zA-Z0-9,./()]")

=REGEXMATCH("^[^a-zA-Z0-9,./()]")

Je suis perdu, je ne suis pas habitué à travailler avec Regex et j'apprécierais vraiment de l'aide.

4
GuiNetto

L'expression régulière doit être ^[a-zA-Z0-9,./()]*$, où $ à la fin signifie la fin de la chaîne. Cela force le contenu entier à se composer des caractères spécifiés.

En outre, vous ne passez normalement pas une plage dans les formules de validation des données: il doit s'agir de la référence au coin supérieur gauche de la plage. Par exemple, si votre plage est A2: E20, la formule de validation des données doit être

=REGEXMATCH(TO_TEXT(A2), "^[a-zA-Z0-9,./()]*$")

Cette formule sera ensuite interprétée pour les autres cellules en fonction de la façon dont les références relatives sont traitées. C'est le même comportement qu'avec la mise en forme conditionnelle.

5
user79865