91 votes

Expression régulière pour vérifier si des lettres majuscules sont trouvées consécutivement dans une chaîne ?

Je veux connaître l'expression rationnelle pour le cas suivant :

La chaîne ne doit contenir que des lettres alphabétiques. Il doit commencer par une majuscule suivie d'une minuscule. Il peut alors s'agir de minuscules ou de majuscules.

 ^[A-Z][a-z][A-Za-z]*$

Mais la chaîne ne doit pas non plus contenir de majuscules consécutives. Comment ajouter cette logique à l'expression rationnelle ?

Autrement dit, HttpHandler est correct, mais HTTPHandler est faux.

10voto

Oren Trutner Points 12125
^([A-Z][a-z]+)+$

Cela recherche des séquences d'une lettre majuscule suivie d'une ou plusieurs lettres minuscules. Les lettres majuscules consécutives ne correspondront pas, car une seule est autorisée à la fois et elle doit être suivie d'une minuscule.

8voto

Falco Points 451

Mis à part l'excellent article de tchrist concernant l'unicode, je pense que vous n'avez pas besoin de la solution complexe avec une prévision négative ... Votre définition nécessite une lettre majuscule suivie d'au moins un groupe de (une lettre minuscule éventuellement suivie d'une lettre majuscule)

 ^
[A-Z]    // Start with an uppercase Letter
(        // A Group of:
  [a-z]  // mandatory lowercase letter
  [A-Z]? // an optional Uppercase Letter at the end
         // or in between lowercase letters
)+       // This group at least one time
$

Juste un peu plus compact et plus facile à lire je pense...

-23voto

Gaurav Kumar Points 167

Si vous souhaitez obtenir tous les noms d'employés dans mysql comportant au moins une lettre majuscule, appliquez cette requête.

 SELECT * FROM registration WHERE `name` REGEXP BINARY '[A-Z]';

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X