calc : présence de minuscule dans le texte d’une cellule

Bonjour

Je cherche à vérifier qu’une chaîne de caractères, disons en A2, respecte des critères de présence de caractères qui doivent être contenus : minuscule, majuscule, chiffre, signe (dans une liste). Le problème c’est que l’expression régulière ".*[a-z].*" accepte “A2”. Je m’explique.

Via Internet j’ai trouvé qu’il fallait passer par NB.SI ou CHERCHE et une expression régulière. J’ai également trouvé qu’il fallait dans outils/options/calc/calcul cocher “respecter la casse” et “autoriser les expressions régulières dans les formules” ce qui est fait.

=NB.SI(A2;"[a-z]") est 0, =NB.SI(A2;"[A-Z]") est aussi 0,
erreur due au fait que le texte complet de la cellule est différent du motif cherché, il faut chercher ".*[…].*"

=NB.SI(A2;".*[a-z].*") est 1, inattendu car le texte est “A2”
NB : =NB.SI(A2;".*[A-Z].*") est 1 aussi mais c’est normal :slight_smile:

voyant que ma série de signes a fonctionné convenablement, j’ai essayé :
=NB.SI(A2;".*[abcdefghijklmnopqrstuvwxyz].*")
… qui retourne 1 au lieu de 0

Même chose pour la fonction CHERCHE au lieu de NB.SI, =CHERCHE("[a-z]";A2) et =CHERCHE(".*[a-z].*";A2) retourne 1 pour le texte à vérifier “A2”)… je préfère NB.SI qui retourne 1 ou 0 à CHERCHE qui part en erreur en cas d’absence.

option 1 : il existe une solution que je n’ai pas de préférence ensembliste, et qui doit être applicable aux chiffres et à une liste définie de signes.

option 2 : c’est un bug autour de “respecter la casse”

Je vous remercie de l’aide que vous pourrez m’apporter.

Librement, Éric
[edit] j’oubliais : LibreOffice Version: 6.1.6.3 (x64)

Bonjour @elricklqby

Le problème vient en effet du respect de la casse. Ce dernier est géré dans le dialogue ÉditionRechercher & remplacer par une case à cocher dédiée qui permet à la recherche de [a-z] ou [:lower:] de fonctionner.

Les fonctions ne permettent pas d’inclure ce “flag” (ou je n’ai pas trouvé comment faire…).

Une solution pour vérifier si une cellule contient des minuscules : =NON(EXACT(MAJUSCULE(A1);A1))

[Ajout 25-04-20 10:45]

@elricklqby Ayant rapporté la demande (cf. fdo#132380) je peux t’annoncer que la gestion de ces “flags” figurera dans la prochaine 6.5.

Cordialement

Bonjour
Et merci pour cette réponse, je trouve toutefois dommage que le moteur d’expression régulière applique des règles qui ne soient pas celles des autres moteurs… le préciser dans la doc serait utile.
En attendant je vais tester majuscules et minuscules par l’astuce fournie :slight_smile:
Librement
Éric