¿Qué son los límites sin palabra en las expresiones regulares (B), en comparación con el límite de palabras?
Respuestas
66 para la respuesta № 1Un 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
escrito B
, es una coincidencia de ancho cero donde hace lo anterior no sostener. 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
Partidos 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 !
^ ^ ^ ^ ^ ^ ^ ^ ^ ^
2 para la respuesta № 2
El propósito básico de non-word-boundary
Es crear una expresión regular que dice:
si estamos al principio / fin de un
word char
(w
=[a-zA-Z0-9_]
) Asegúrese de que el carácter anterior / siguiente también sea unword char
,p.ej.:
"aB."
~"aw"
:"ab"
,"a4"
,"a_"
, ... pero no"a "
,"a."
si estamos al principio / fin de un
non-word char
(W
=[^a-zA-Z0-9_]
) Asegúrese de que el carácter anterior / siguiente también sea unnon-word char
,p.ej.:
"-B."
~"-W"
:"-."
,"- "
,"--"
, ... pero no"-a"
,"-1"
por word-boundary
es similar pero en lugar de asegurarse de que los caracteres adyacentes sean de la misma clase (word char
/non-word car
) necesitan diferenciar, de ahí el nombre word"s boundary
.