Delimitatori de Cuvânt \b și \B în RegEx în Expresii Regulare (RegEx)

Aserțiuni de Poziție Standard RegEx Universal

Potrivirea cuvintelor exacte și independente, prevenind potrivirile accidentale în interiorul altor termeni mai lungi.

Tipar RegEx
\b (Word Boundary) & \B (Non-Word Boundary)

Una dintre cele mai frecvente erori în căutarea cu regex este căutarea naivă a unui cuvânt scurt: dacă dorești să găsești cuvântul ‘cat’ și cauți simplu `cat`, expresia va potrivi accidental interiorul cuvintelor ‘comuni**cat**’, ‘**cat**egorie’, ‘apli**cat**ie’ sau ‘dupli**cat**’.

Aserțiunea \b (Word Boundary) verifică poziția de trecere între un caracter alfanumeric (`\w`) și un caracter non-alfanumeric (spațiu, punctuație, început sau sfârșit de rând). Prin împachetarea cuvântului ca \bcat\b, motorul garantează potrivirea exclusivă a termenului independent.

Opusul său, \B (Non-Word Boundary), validează faptul că poziția curentă se află în interiorul unui cuvânt, permițând căutarea de sufixe sau prefixe specifice.

Sintaxă, opțiuni și concepte cheie

Opțiune / Concept Descriere practică
\bcuvant\b Potrivește cuvântul exact doar ca termen independent separat prin spații sau punctuație.
\bprefix Potrivește începutul oricărui cuvânt care debutează cu secvența indicată.
sufix\b Potrivește finalul oricărui cuvânt care se termină cu secvența indicată.
\B Non-Word Boundary: poziție unde ambele caractere vecine sunt litere/cifre.

Exemple practice și cod

Exemplul 1: Înlocuirea cuvântului ‘is’ fără a afecta cuvinte precum ‘this’ sau ‘island’

Demonstrația acurateței oferite de `\b`.

Text de test:
"This island is fantastic and it is peaceful."

1. Fără Word Boundary (Greșit):
Expresie: is
Rezultat: Găsește 4 potriviri ("Th[is]", "[is]land", "[is]", "[is]")!

2. Cu Word Boundary (Corect):
Expresie: \bis\b
Rezultat: Găsește exact cele 2 apariții ale cuvântului independent "is"!

Rezultat & Impact

Precizie de 100% la operațiunile de căutare și înlocuire în texte mari.

Greșeli frecvente și bune practici

  • Uitarea faptului că în string-urile din limbajele de programare (C#, Java, Python, JavaScript), caracterul `\` trebuie scăpat cu `\\b` sau declarat ca raw string (`r”\b”` în Python sau `@”\b”` în C#).
  • Folosirea `\b` pe caractere cu diacritice românești (cum ar fi `ș`, `ț`, `ă`) în motoare vechi RegEx care nu au suport Unicode (`/u`) activat, considerând diacriticele ca separatori de cuvinte.

Ghiduri și noțiuni înrudite