¿Cómo puedo hacer que la siguiente regex ignore la distinción entre mayúsculas y minúsculas? Debería coincidir con todos los caracteres correctos pero ignorar si son minúsculas o mayúsculas.
G[a-b].*
Suponiendo que quiera que la regex totalmente ignore las mayúsculas y minúsculas, debe buscar la bandera i
. Casi todos los motores regex lo soportan:
/G[a-b].*/i
string.match("G[a-b].*", "i")
Consulta la documentación de tu lenguaje/plataforma/herramienta para saber cómo se especifican los modos de coincidencia.
Si quieres que sólo parte de la regex no distinga entre mayúsculas y minúsculas (como suponía mi respuesta original), tienes dos opciones:
Utilizar los modificadores de modo (?i)
y [opcionalmente] (?-i)
:
(?i)G[a-b](?-i).*
Ponga todas las variaciones (es decir, minúsculas y mayúsculas) en la regex - ú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, compruebe si su motor regex los soporta adecuadamente.
Depende de la implementación pero yo usaría
(?i)G[a-b].
VARIACIONES:
(?i) case-insensitive mode ON
(?-i) case-insensitive mode OFF
Los sabores modernos de regex permiten aplicar modificadores sólo a una parte de la expresión regular. Si insertas el modificador (?im) en medio de la regex, entonces el modificador sólo se aplica a la parte de la regex a la derecha del modificador. Con estos sabores, puede desactivar los modos precediéndolos de un signo menos (?-i).
La descripción es de la página: https://www.regular-expressions.info/modifiers.html