Comment puis-je faire en sorte que l'expression rationnelle suivante ignore la sensibilité à la casse ? Elle devrait correspondre à tous les caractères corrects mais ignorer s'ils sont en minuscules ou en majuscules.
G[a-b].*
Si vous voulez que la regex ignore la casse, vous devez chercher le drapeau [i
][1]. Presque tous les moteurs de regex le supportent :
/G[a-b].*/i
string.match("G[a-b].*", "i")
Consultez la documentation de votre langue/plateforme/outil pour savoir comment les modes de correspondance sont spécifiés.
Si vous voulez que seule une partie de la regex soit insensible à la casse (comme le supposait ma réponse initiale), vous avez deux options :
Utilisez les modificateurs de mode (?i)
et [optionnellement] (?-i)
:
(?i)G[a-b](?-i).*
Mettez toutes les variations (c'est-à-dire les minuscules et les majuscules) dans la regex - utile si les modificateurs de mode ne sont pas supportés :
[gG][a-bA-B].*
Une dernière remarque : si vous avez affaire à des caractères Unicode autres qu'ASCII, vérifiez si votre moteur de regex les prend correctement en charge.
Cela dépend de l'implémentation mais j'utiliserais
(?i)G[a-b].
VARIATIONS:
(?i) case-insensitive mode ON
(?-i) case-insensitive mode OFF
Les saveurs modernes de regex vous permettent d'appliquer des modificateurs à une partie seulement de l'expression régulière. Si vous insérez le modificateur (?im) au milieu de l'expression régulière, le modificateur ne s'applique qu'à la partie de l'expression régulière située à droite du modificateur. Avec ces saveurs, vous pouvez désactiver les modes en les faisant précéder du signe moins (?-i).
La description est tirée de la page : [https://www.regular-expressions.info/modifiers.html][1]