Se voglio abbinare tutte le occorrenze della parola foo
, utilizzerei \bfoo\b
o senza l'ultimo? Sembra che funzionino entrambi, ma cosa è giusto?
Avresti bisogno di usare entrambi. Senza l'ultimo \b
si otterrebbe una corrispondenza su stringhe come:
"I love football" "You foolishly left off your second word boundary"
Tuttavia, si noti che la definizione di word boundary \b
si basa sulla definizione di \w
: un limite di parola viene definito quando si trova tra un carattere non word e un carattere word, where il carattere word è definito da \w
. \w
per la string ASCII è equivalente a [A-Za-z0-9_]
, quindi \bfoo\b
rifiuta anche casi come:
foo123 3foo foo_bar fun_foo
Poiché le cifre e _
sono considerate carattere di parola, se sono proprio accanto a foo
, non formsranno un limite di parole, quindi \bfoo\b
non corrisponderà a nessuno dei precedenti.
Dato il seguente input:
foo foobar
Questa espressione regolare corrisponderà solo al primo foo
:
\bfoo\b
Questa espressione regolare corrisponderà al primo ed anche al foo
in foobar
:
\bfoo