Hoe kan ik de volgende regex hoofdlettergevoeligheid laten negeren? Het moet overeenkomen met alle juiste tekens, maar negeren of ze kleine of hoofdletters zijn.
G[a-b].*
Ervan uitgaande dat je wilt dat de gehele regex hoofd- en kleine letters negeert, moet je op zoek naar de i
vlag. Bijna alle regex engines ondersteunen deze:
/G[a-b].*/i
string.match("G[a-b].*", "i")
Kijk in de documentatie van je taal/platform/tool hoe de matching modes zijn gespecificeerd.
Als je wilt dat slechts een deel van de regex hoofdletterongevoelig is (zoals mijn oorspronkelijke antwoord veronderstelde), dan heb je twee opties:
Gebruik de (?i)
en [optioneel] (?-i)
mode modifiers:
(?i)G[a-b](?-i).*
Zet alle variaties (dus kleine letters en hoofdletters) in de regex - handig als mode modifiers niet worden ondersteund:
[gG][a-bA-B].*
Nog een laatste opmerking: als je te maken hebt met Unicode karakters naast ASCII, controleer dan of je regex engine ze goed ondersteunt of niet.
Hangt af van de uitvoering maar ik zou
(?i)G[a-b].
VARIATIES:
(?i) case-insensitive mode ON
(?-i) case-insensitive mode OFF
Moderne regex smaken staan je toe om modifiers toe te passen op slechts een deel van de reguliere expressie. Als je de modifier (?im) in het midden van de regex zet dan is de modifier alleen van toepassing op het deel van de regex rechts van de modifier. Met deze modifiers kunt u modifiers uitschakelen door ze vooraf te laten gaan door een minteken (?-i).
Beschrijving is van de pagina: https://www.regular-expressions.info/modifiers.html