Hvordan kan jeg få følgende regex til å ignorere store og små bokstaver? Det skal matche alle de riktige tegnene, men ignorere om de er små eller store bokstaver.
G[a-b].*
Forutsatt at du vil at hele regex skal ignorere store og små bokstaver, bør du se etter i
flagget. Nesten alle regex-motorer støtter det:
/G[a-b].*/i
string.match("G[a-b].*", "i")
Sjekk dokumentasjonen for språket/plattformen/verktøyet ditt for å finne ut hvordan samsvarsmodusene er spesifisert.
Hvis du vil at bare en del av regexet skal være ufølsomt for store og små bokstaver (som mitt opprinnelige svar antydet), har du to alternativer:
Bruk modusmodifikatorene (?i)
og [eventuelt] (?-i)
:
(?i)G[a-b](?-i)*.
Legg inn alle variasjonene (dvs. små og store bokstaver) i regexet - nyttig hvis modusmodifikatorer ikke støttes:
[gG][a-bA-B]*.
En siste merknad: Hvis du har å gjøre med Unicode-tegn i tillegg til ASCII, må du sjekke om regex-motoren din støtter dem på riktig måte.
Avhenger av gjennomføringen men jeg ville brukt
(?i)G[a-b].
VARIANTER:
(?i) case-insensitive mode ON
(?-i) case-insensitive mode OFF
Moderne regex-varianter lar deg bruke modifikatorer på bare en del av det regulære uttrykket. Hvis du setter inn modifikatoren (?im) midt i regexet, gjelder modifikatoren bare for den delen av regexet til høyre for modifikatoren. Med disse variantene kan du slå av moduser ved å sette et minustegn (?-i) foran dem.
Beskrivelsen er fra siden: https://www.regular-expressions.info/modifiers.html