Che cosa sono i limiti di parole diverse nella regex (B), rispetto al confine delle parole?
risposte:
66 per risposta № 1Un limite di parole (b
) è una corrispondenza di larghezza zero che può corrispondere:
- Tra un carattere di parole (
w
) e un carattere non verbale (W
) o - Tra un carattere di parola e l'inizio o la fine della stringa.
In Javascript la definizione di w
è [A-Za-z0-9_]
e W
è tutto il resto
La versione negata di b
, scritto B
, è una corrispondenza di larghezza zero in cui si trova quanto sopra non tenere. Pertanto può corrispondere:
- Tra due caratteri di parole.
- Tra due caratteri non di parole.
- Tra un carattere non di parole e l'inizio o la fine della stringa.
- La stringa vuota.
Ad esempio se la stringa è "Hello, world!"
poi b
partite nei seguenti posti:
H e l l o , w o r l d !
^ ^ ^ ^
E B
corrisponde a quei luoghi dove b
non corrisponde:
H e l l o , w o r l d !
^ ^ ^ ^ ^ ^ ^ ^ ^ ^
2 per risposta № 2
Lo scopo di base di non-word-boundary
è quello di creare una regex che dice:
se siamo all'inizio / alla fine di a
word char
(w
=[a-zA-Z0-9_]
) assicurati che anche il carattere precedente / successivo sia aword char
,per esempio.:
"aB."
~"aw"
:"ab"
,"a4"
,"a_"
, ... ma no"a "
,"a."
se siamo all'inizio / alla fine di a
non-word char
(W
=[^a-zA-Z0-9_]
) assicurati che anche il carattere precedente / successivo sia anon-word char
,per esempio.:
"-B."
~"-W"
:"-."
,"- "
,"--"
, ... ma no"-a"
,"-1"
Per word-boundary
è simile ma invece di assicurarsi che i personaggi adiacenti siano della stessa classe (word char
/non-word car
) hanno bisogno di differire, da qui il nome word"s boundary
.