Viac na
Regex: ignoruje citlivosť na veľkosť písmen
Ako môžem zabezpečiť, aby nasledujúci regex ignoroval citlivosť na veľkosť písmen? Mal by sa zhodovať so všetkými správnymi znakmi, ale ignorovať, či sú to malé alebo veľké písmená.
G[a-b].*
263
3
Za predpokladu, že chcete, aby celý regex ignoroval veľkosť písmen, mali by ste hľadať príznak
i
. Podporujú ho takmer všetky regexové motory:Pozrite si dokumentáciu k vášmu jazyku/platforme/nástroju, aby ste zistili, ako sa určujú režimy porovnávania.
Ak chcete, aby len časti regexu nerozlišovali veľké a malé písmená (ako predpokladala moja pôvodná odpoveď), potom máte dve možnosti:
Použite modifikátory režimu
(?i)
a [voliteľne](?-i)
:Do regexu vložte všetky varianty (t. j. malé a veľké písmená) - užitočné, ak modifikátory režimu nie sú podporované:
Posledná poznámka: ak'pracujete so znakmi Unicode okrem ASCII, skontrolujte, či ich váš regex engine správne podporuje.
Závisí od implementácie ale ja by som použil
VARIANTY:
Moderné varianty regexu umožňujú aplikovať modifikátory len na časť regulárneho výrazu. Ak vložíte modifikátor (?im) do stredu regexu, potom sa modifikátor aplikuje len na časť regexu napravo od modifikátora. Pomocou týchto príznakov môžete vypnúť mody tak, že pred nimi uvediete znamienko mínus (?-i).
Popis je zo stránky: https://www.regular-expressions.info/modifiers.html
Príznak
i
sa zvyčajne používa na rozlišovanie veľkých a malých písmen. Neuvádzate tu jazyk, ale pravdepodobne to bude niečo ako/G[ab].*/i
alebo/(?i)G[ab].*/
.