javascript - probar - ¿Qué son los límites que no son palabras en expresiones regulares(/ B), en comparación con el límite de palabras?
probar expresiones regulares (2)
¿Qué son los límites que no son palabras en las expresiones regulares (/ B), en comparación con el límite de palabras?
El propósito básico de non-word-boundary
es crear una expresión regular que diga:
si estamos al principio / al final de una
word char
(/w
=[a-zA-Z0-9_]
), asegúrese de que el carácter anterior / siguiente también sea unaword char
,por ejemplo:
"a/B."
~"a/w"
:"ab"
,"a4"
,"a_"
, ... pero no"a "
,"a."
si estamos al principio / al final de un
non-word char
(/W
=[^a-zA-Z0-9_]
), asegúrese de que el carácter anterior / siguiente también sea un carácternon-word char
,por ejemplo:
"-/B."
~"-/W"
:"-."
,"- "
,"--"
, ... pero no"-a"
,"-1"
Para word-boundary
es similar, pero en lugar de asegurarse de que los caracteres adyacentes sean de la misma clase ( word char
/ non-word car
) deben diferir, de ahí el word''s boundary
.
Un límite de palabra ( /b
) es una coincidencia de ancho cero que puede coincidir:
- Entre un carácter de palabra (
/w
) y un carácter sin palabra (/W
) o - Entre un carácter de palabra y el inicio o final de la cadena.
En Javascript, la definición de /w
es [A-Za-z0-9_]
y /W
es cualquier otra cosa.
La versión negada de /b
, escrita /B
, es una coincidencia de ancho cero donde no se cumple lo anterior. Por lo tanto puede coincidir con:
- Entre dos caracteres de la palabra.
- Entre dos caracteres distintos de la palabra.
- Entre un carácter sin palabra y el principio o el final de la cadena.
- La cadena vacía.
Por ejemplo, si la cadena es "Hello, world!"
entonces /b
coincide en los siguientes lugares:
H e l l o , w o r l d !
^ ^ ^ ^
Y /B
coincide con aquellos lugares donde /b
no coincide:
H e l l o , w o r l d !
^ ^ ^ ^ ^ ^ ^ ^ ^ ^