Kako lahko naredim naslednji regex, da ne upošteva občutljivosti velikih in malih črk? Ujemati mora vse pravilne znake, vendar ne upošteva, ali gre za male ali velike črke.
G[a-b].*
Ob predpostavki, da želite, da vse regex ne upošteva velikosti črk, morate poiskati i
zastavico. Podpirajo jo skoraj vsi pogoni regex:
/G[a-b].*/i
string.match("G[a-b].*", "i")
V dokumentaciji za svoj jezik/platformo/orodje preverite, kako so določeni načini ujemanja.
Če želite, da je le del regexa neobčutljiv na velikost črk (kot je predvideval moj prvotni odgovor), potem imate dve možnosti:
Uporabite modifikatorja načina (?i)
in [neobvezno] (?-i)
:
(?i)G[a-b](?-i).*
V regex vpišite vse različice (tj. male in velike črke) - uporabno, če modifikatorji načina niso podprti:
[gG][a-bA-B].*
Še zadnja opomba: če imate poleg znakov ASCII opravka tudi z znaki Unicode, preverite, ali jih vaš pogon regex ustrezno podpira.
Odvisno od izvedbe vendar bi uporabil
(?i)G[a-b].
VARIANTE:
(?i) case-insensitive mode ON
(?-i) case-insensitive mode OFF
Sodobni okusi regexa omogočajo uporabo modifikatorjev le za del regularnega izraza. Če vstavite modifikator (?im) na sredino regexa, potem se modifikator uporablja samo za del regexa desno od modifikatorja. Pri teh okusih lahko načine izklopite tako, da pred njimi vstavite znak minus (?-i).
Opis je s strani: https://www.regular-expressions.info/modifiers.html
Oznaka i
se običajno uporablja za neobčutljivost na velikost črk. Tukaj ne navedete jezika, vendar bo verjetno nekaj takega kot /G[ab].*/i
ali `/(?i)G[ab].*/``.