Como posso fazer com que a seguinte regex ignore a sensibilidade ao caso? Deve corresponder a todos os caracteres correctos mas ignorar se são maiúsculas ou minúsculas.
G[a-b].*
Assumindo que você quer que o whole regex ignore o caso, você deve procurar pela i
flag. Quase todos os motores regex o suportam:
/G[a-b].*/i
string.match("G[a-b].*", "i")
Verifique a documentação do seu idioma/plataforma/ferramenta para saber como os modos de correspondência são especificados.
Se você quiser que apenas parte do regex seja insensível ao caso (como minha resposta original presumiu), então você tem duas opções:
Utilize os modificadores de modo (?i)
e [opcionalmente] (?-i)
:
(?i)G[a-b](?-i).*
Coloque todas as variações (i.e. minúsculas e maiúsculas) no regex - útil se os modificadores de modo não forem suportados:
[gG][a-bA-B].*
Uma última nota: se você'estiver lidando com caracteres Unicode além de ASCII, verifique se o seu motor regex os suporta ou não adequadamente.
Depende da implementação mas eu usaria
(?i)G[a-b].
VARIAÇÕES:
(?i) case-insensitive mode ON
(?-i) case-insensitive mode OFF
Os modernos sabores regex permitem-lhe aplicar modificadores apenas a uma parte da expressão regular. Se você inserir o modificador (?im) no meio do regex então o modificador só se aplica à parte do regex à direita do modificador. Com estes sabores, você pode desativar os modos precedendo-os com um sinal de menos (?-i).
A descrição é da página: https://www.regular-expressions.info/modifiers.html[2]