Comment faire en sorte que la regex suivante ignore la sensibilité à la casse? Il doit correspondre à tous les caractères corrects mais ignorer s'ils sont inférieurs ou majuscules.
G[a-b].*
En supposant que vous souhaitiez que la regex whole ignore la casse, vous devriez rechercher le drapeau i
. Presque tous les moteurs de regex le supportent:
/G[a-b].*/i
string.match("G[a-b].*", "i")
Consultez la documentation de votre langue/plate-forme/outil pour savoir comment les modes correspondants sont spécifiés.
Si vous voulez que seule partie de la regex soit insensible à la casse (comme le supposait ma réponse originale), vous avez deux options:
Utilisez les modificateurs de mode (?i)
et [facultativement] (?-i)
:
(?i)G[a-b](?-i).*
Mettez toutes les variantes (c'est-à-dire minuscules et majuscules) dans l'expression régulière - utile si les modificateurs de mode ne sont pas pris en charge:
[gG][a-bA-B].*
Une dernière remarque: si vous utilisez des caractères Unicode autres que ASCII, vérifiez si votre moteur regex les prend en charge correctement.
Dépend de la mise en œuvre Mais je voudrais utiliser
(?i)G[a-b].
VARIATIONS:
(?i) case-insensitive mode ON
(?-i) case-insensitive mode OFF
Les saveurs de regex modernes 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 la regex, celui-ci ne s'applique qu'à la partie de la regex située à droite du modificateur. Avec ces variantes, vous pouvez désactiver les modes en les précédant d’un signe moins (? -I).
La description est tirée de la page: https://www.regular-expressions.info/modifiers.html
L'indicateur i
est normalement utilisé pour l'insensibilité à la casse. Vous ne donnez pas de langue ici, mais ce sera probablement quelque chose comme /G[a-b].*/i
.
expression régulière pour valider 'abc' sans tenir compte de la casse
(?i)(abc)
Juste pour être complet, je voulais ajouter la solution pour les expressions régulières en C++ avec Unicode:
std::tr1::wregex pattern(szPattern, std::tr1::regex_constants::icase);
if (std::tr1::regex_match(szString, pattern))
{
...
}
Comme je l'ai découvert à partir de ce message similaire ( ignorecase dans AWK ), sur les anciennes versions de awk (telles que sur Vanilla Mac OS X), il peut être nécessaire d'utiliser 'tolower($0) ~ /pattern/'
.
IGNORECASE
ou (?i)
ou /pattern/i
générera une erreur ou renverra true pour chaque ligne.
[gG] [aAbB]. * probablement une solution simple si le motif n'est pas trop compliqué ou long.
Vous pouvez également diriger votre chaîne initiale, que vous allez vérifier pour la correspondance de modèle, en minuscule. Et en utilisant dans votre modèle, les symboles minuscules, respectivement.
Ajout aux réponses déjà acceptées:
Notez que pour grep
ing, il s'agit simplement de l'ajout du modificateur -i
. Ex: grep -rni regular_expression
pour rechercher cette 'expression_régulière', 'r'économiquement, la casse' étant insensible, la ligne 'représentant des nombres' ne figurant pas dans le résultat.
En outre, voici un excellent outil pour vérifier les expressions régulières: https://regex101.com/
Ex: Voir l'expression et l'explication dans cette image.
man grep
) C #
using System.Text.RegularExpressions;
...
Regex.Match(
input: "Check This String",
pattern: "Regex Pattern",
options: RegexOptions.IgnoreCase)
spécifiquement: options: RegexOptions.IgnoreCase