Regex Flags
In this tutorial, you'll learn about Cum să folosești flag. We cover key concepts, practical examples, and best practices.
Vei învăța cum să folosești flag-urile expresiilor regulate în Python și JavaScript pentru a controla comportamentul potrivirii: case-insensitive, global, multiline, dotall și verbose.
Problema
Comportamentul default al regex nu e mereu suficient. Uneori vrei potrivire fără a ține cont de litere mari/mici, să găsești toate aparițiile, sau să scrii regex-uri mai complexe pe mai multe linii.
Flag-urile Principale
| Flag | Python | JavaScript | Efect |
|---|---|---|---|
| Ignoră case | re.I |
i |
Potrivire fără a ține cont de uppercase/lowercase |
| Global | — | g |
Găsește toate aparițiile (nu doar prima) |
| Multiline | re.M |
m |
^ și $ se potrivesc pe fiecare linie |
| Dotall | re.S |
s |
. se potrivește și cu newline |
| Verbose | re.X |
x |
Permite spații și comentarii în regex |
Modul Greșit
import re
text = "Python PYTHON python"
result = re.findall(r"python", text)
# Găsește doar "python" cu litere mici
print(result) # ["python"]
Modul Corect
import re
text = "Python PYTHON python"
# Flag-ul I (IGNORECASE)
result = re.findall(r"python", text, re.I)
print(result) # ["Python", "PYTHON", "python"]
# Flag-ul M (MULTILINE) — ^ și $ pe fiecare linie
text2 = "primul\nsecundul\nterțul"
result2 = re.findall(r"^\w+", text2, re.M)
print(result2) # ["primul", "secundul", "terțul"]
# Flag-ul S (DOTALL) — . se potrivește și cu \n
text3 = "Hello\nWorld"
result3 = re.findall(r"Hello.World", text3, re.S)
print(result3) # ["Hello\nWorld"]
Output:
['Python', 'PYTHON', 'python']
['primul', 'secundul', 'terțul']
['Hello\nWorld']
În JavaScript
const text = "Python PYTHON python";
// Flag i — ignore case
console.log(text.match(/python/gi));
// ["Python", "PYTHON", "python"]
// Flag m — multiline
const text2 = "primul\nsecundul\nterțul";
console.log(text2.match(/^\w+/gm));
// ["primul", "secundul", "terțul"]
// Flag s — dotall
const text3 = "Hello\nWorld";
console.log(text3.match(/Hello.World/s));
// ["Hello\nWorld"]
Output:
["Python", "PYTHON", "python"]
["primul", "secundul", "terțul"]
["Hello\nWorld"]
Flag-ul X (Verbose) — Regex pe Mai Multe Linii
import re
pattern = re.compile(r"""
\d{4} # anul
[-/] # separator
\d{2} # luna
[-/] # separator
\d{2} # ziua
""", re.X)
text = "Data: 2025-01-15 si 2025/01/16"
print(pattern.findall(text)) # ["2025-01-15", "2025/01/16"]
Output:
['2025-01-15', '2025/01/16']
Sfaturi de Prevenire
- Combină flag-urile cu
|în Python:re.I | re.M - În JavaScript, flag-urile se pun după al doilea
/:/pattern/gim - Folosește
re.compilecu flag-uri pentru regex-uri folosite des re.Xajută la documentarea regex-urilor complexe
Greșeli Comuni
- Fără
gîn JavaScript — primești doar prima potrivire ^și$fărăm— se potrivesc doar la începutul/sfârșitul întregului text- Litere mari greșite — Python:
re.I, nure.i
FAQ
Construit de dezvoltătorii Doda Browser, DodaZIP și Durga Antivirus Pro. Uneltele DodaTech se integrează perfect cu Python și JavaScript pentru productivitate și securitate sporită.
Built by the developers of DodaTech
Doda Browser, DodaZIP & Durga Antivirus Pro