Cum pot face următoarele regex ignora caz de sensibilitate? Ar trebui să se potrivească toate caracterele corecte dar ignora dacă acestea sunt mai mici sau majuscule.
G[a-b].*
Presupunând că vrei tot regex să ignore caz, ar trebui să uite pentru i
flag. Aproape toate regex motoarele de sprijin:
/G[a-b].*/i
string.match("G[a-b].*", "i")
Verificați documentația pentru limba/platforma/instrument pentru a găsi modul în care moduri de potrivire sunt specificate.
Dacă doriți doar parte de regex să fie majuscule (ca răspuns inițial presupus), atunci aveți două opțiuni:
(?i)
și [opțional] `(?-i) modul de modificatori:(?i)Ga-b.*
[gG][o-bA-B].*
O ultima nota: daca're de-a face cu caractere Unicode în afară de ASCII, verificați dacă este sau nu regex motor sprijină în mod corespunzător a le.
Depinde de punerea în aplicare dar mi-ar folosi
(?i)G[a-b].
VARIANTE:
(?i) case-insensitive mode ON
(?-i) case-insensitive mode OFF
Modern regex arome vă permite să se aplice modificatori pentru doar o parte din expresia regulată. Dacă introduceți modificator (?im) în mijlocul regex apoi modificator se aplică numai pentru partea de regex la dreptul de modificator. Cu aceste arome, puteți dezactiva modurile prin care le preced cu un semn minus (?-i).
Descrierea de pe pagina: https://www.regular-expressions.info/modifiers.html
Doar pentru motive de exhaustivitate, am vrut să adăugați soluția pentru expresii regulate în C++ cu Unicode:
std::tr1::wregex pattern(szPattern, std::tr1::regex_constants::icase);
if (std::tr1::regex_match(szString, pattern))
{
...
}
Ca am descoperit de la acest post similar (https://stackoverflow.com/questions/5228892/ignorecase-in-awk/), pe versiunile vechi de awk (cum ar fi vanilie, Mac OS X), poate fi necesar să utilizați 'pentru a reduce($0) ~ /model/'
.
IGNORECASE "sau" (?i) " sau " /model/am
fie va genera o eroare sau se întoarcă adevărat pentru fiecare linie.
Plus față de deja-răspunsuri acceptate:
Rețineți că pentru grep ' ing este pur și simplu adăugarea a
-imodificator. Ex:
grep -rni regular_expression să căutare pentru 'regular_expression' 'r'ecursively, caz 'i'nsensitive, arată linia 'n'umbers în rezultat.
De asemenea, aici's un instrument de mare pentru verificarea expresii regulate: https://regex101.com/
Ex: a se Vedea expresia și Explicație în această imagine.