Regex: ignore la sensibilidad de mayúsculas y minúsculas

¿Cómo puedo hacer que la siguiente expresión regular ignore la distinción entre mayúsculas y minúsculas? Debe coincidir con todos los caracteres correctos, pero ignore si son más bajos o mayúsculos.

G[ab].* 

Suponiendo que quiere que toda la expresión regular ignore el caso, debería buscar la bandera i . Casi todos los motores regex lo admiten:

 /G[ab].*/i string.match("G[ab].*", "i") 

Consulte la documentación de su idioma / plataforma / herramienta para encontrar cómo se especifican los modos de coincidencia.

Si desea que solo una parte de la expresión regular sea insensible a las mayúsculas y minúsculas (como se presumió en mi respuesta original), entonces tiene dos opciones:

  1. Use los modificadores de modo (?i) y [opcionalmente] (?-i) :

     (?i)G[ab](?-i).* 
  2. Coloque todas las variaciones (es decir, minúsculas y mayúsculas) en la expresión regular, útil si los modificadores de modo no son compatibles:

     [gG][a-bA-B].* 

Una última nota: si está tratando con caracteres Unicode además de ASCII, verifique si su motor regex los soporta adecuadamente.

Depende de la implementación, pero yo usaría

 (?i)G[ab]. 

La bandera i se usa normalmente para insensibilidad de mayúsculas y minúsculas. No le da un idioma aquí, pero probablemente será algo como /G[ab].*/i .

expresión regular para validar ‘abc’ ignorando mayúsculas y minúsculas

 (?i)(abc) 

En aras de la exhaustividad, quería agregar la solución para expresiones regulares en C ++ con Unicode:

 std::tr1::wregex pattern(szPattern, std::tr1::regex_constants::icase); if (std::tr1::regex_match(szString, pattern)) { ... } 

Como descubrí en esta publicación similar ( ignorecase en AWK ), en versiones antiguas de awk (como en Mac OS X de vanilla), es posible que necesite usar 'tolower($0) ~ /pattern/' .

IGNORECASE o (?i) o /pattern/i generará un error o devolverá verdadero para cada línea.

[gG] [aAbB]. * Probablemente la solución simple si el patrón no es demasiado complicado o largo.

También puede llevar su cadena inicial, que va a verificar para la coincidencia de patrones, a minúsculas. Y usando en su patrón símbolos en minúscula, respectivamente.