validate test regulares regular regexp probar online expresiones expresion espacio ejemplos blanco alfanumerico regex

regex - test - Diferencia entre / b y / B en expresiones regulares



regexp javascript (7)

Estoy leyendo un libro sobre expresión regular y encontré este ejemplo para /b :

El gato esparció su comida por toda la habitación.

El uso de expresiones regulares - /bcat/b coincidirá con la palabra cat pero no con el cat scattered .

Para /B el autor usa el siguiente ejemplo:

Por favor ingrese la identificación de nueve dígitos mientras

aparece en la clave de acceso codificada por color.

Usar las coincidencias de regex /B-/B - entre la palabra color - coded . El uso de /b-/b por el contrario coincide con - en nine-digit y pass-key .

¿Cómo es que en el primer ejemplo usamos /b para separar cat y en el segundo uso /B para separar - ? Usar /b en el segundo ejemplo hace lo contrario de lo que hizo antes.

Por favor, explícame la diferencia.

EDITAR: Además, ¿alguien puede explicar con un nuevo ejemplo?


Con un ejemplo diferente:

Considere que esta es la cadena y patrón que se debe buscar es ''cat'':

text = "catmania thiscat thiscatmaina";

Ahora definiciones,

''/ b'' encuentra / combina el patrón al principio o al final de cada palabra.

''/ B'' no encuentra / combina el patrón al principio o al final de cada palabra.

Casos diferentes:

Caso 1: al comienzo de cada palabra

result = text.replace(//bcat/g, "ct");

Ahora, el resultado es "ctmania thiscat thiscatmaina"

Caso 2: al final de cada palabra

result = text.replace(/cat/b/g, "ct");

Ahora, el resultado es "catmania thisct thiscatmaina"

Caso 3: No en el comienzo

result = text.replace(//Bcat/g, "ct");

Ahora, el resultado es "catmania thisct thisctmaina"

Caso 4: No al final

result = text.replace(/cat/B/g, "ct");

Ahora, el resultado es "ctmania thiscat thisctmaina"

Caso 5: Ni comienzo ni fin

result = text.replace(//Bcat/B/g, "ct");

Ahora, el resultado es "catmania thiscat thisctmaina"

Espero que esto ayude :)


Deje tomar una cadena como:

XIX IXI XX XI II IIXX XXII II XX -X X-XI IX -X- -IX -XI IX- XI- X_X _X-

Nota: El subrayado (_) no se considera un carácter especial en este caso.

  1. //bX/b/g Debe comenzar y terminar con un carácter especial o un espacio en blanco

XIX IXI XX X I II IIXX XXII II X - X - X X - X - I I - X - X - -I- X - X -I I- X - X -I- X_X _X-

  1. //bX/g Debería comenzar con un carácter especial o un espacio en blanco

X IX IXI X X X I II IIXX X XII II X - X - X X - X - I I - X - X - - I - X - X - I - X - X - I - X _X _X-

  1. /X/b/g Debe terminar con un carácter especial o espacio blanco

XI X IXI X X X II IIX X XXII II X - X - X X - X - I - X - X - - I - X - X - I - X - X - I - X_ X _ X -

  1. //BX/B/g
    No debe comenzar y no debe terminar con un personaje especial o un espacio en blanco

XIX I X I XX XI II II X X X X II II XX -X X-XI IX -X- -IX -XI IX- XI- X_X _X-

  1. //BX/g No debería comenzar con un carácter especial o un espacio en blanco

XI X I X I X X XI II II XX X X II II XX -X X-XI IX -X- -IX -XI IX- XI- X_ X _ X -

  1. /X/B/g No debería terminar con un carácter especial o un espacio en blanco

X IX I X I X X XI II II X X XX II II XX -X X-XI IX -X- -IX -XI IX- XI- X _X _X-

  1. //bX/B/g Debería comenzar y no terminar con un carácter especial o un espacio en blanco

X IX IXI X X XI II II X X X XII II XX -X X-XI IX -X- -IX -XI IX- XI- X _X _X-

  1. //BX/b/g No debería comenzar y debería terminar con un carácter especial o un espacio en blanco

XI X IXI X X XI II IIX X XXII II XX -X X-XI IX -X- -IX -XI IX- XI- X_ X _ X -


El metacarácter / b es un anclaje como el signo de intercalación y el signo de dólar. Coincide en una posición que se llama un "límite de palabras". Este partido es de longitud cero.

Hay tres posiciones diferentes que califican como límites de palabras:

  • Antes del primer caracter en la cadena, si el primer caracter es un personaje de palabra.
  • Después del último carácter en la cadena, si el último carácter es un carácter de palabra.
  • Entre dos caracteres en la cadena, donde uno es un carácter de palabra y el otro no es un carácter de palabra.

/ B es la versión negada de / b . / B coincide en todas las posiciones donde / b no. Efectivamente, / B coincide en cualquier posición entre dos caracteres de palabra, así como en cualquier posición entre dos caracteres que no sean de palabra.

Fuente: http://www.regular-expressions.info/wordboundaries.html


La confusión proviene de su pensamiento /b coincide con los espacios (probablemente porque "b" sugiere "en blanco").

/b coincide con la cadena vacía al principio o al final de una palabra . /B coincide con la cadena vacía no al principio ni al final de una palabra. La clave aquí es que "-" no es parte de una palabra. Así <left>-<right> coincide con /b-/b porque hay límites de palabras a cada lado de - . Por otro lado para <left> - <right> (tenga en cuenta los espacios), no hay límites de palabras en ninguno de los lados del tablero. Los límites de las palabras son un espacio más a la izquierda y a la derecha.

Por otro lado, cuando se buscan /bcat/b límites de palabras se comportan de forma más intuitiva y coincide con "cat" como se esperaba.


/B no es /b por ejemplo, negativo /b

pass-key aquí no tiene ningún límite de palabras - por lo que coincide con /B en su primer ejemplo; hay un límite de palabras al lado del gato, por lo que coincide /b

reglas similares se aplican para otros también. /W es negativo de /w /UPPER CASE es negativo de /LOWER CASE


/b coincide con un límite de palabras. /B coincide con los límites sin palabras, y es equivalente a [^/b] (?!/b) (¡gracias a por la corrección!) . Ambos son de ancho cero.

Ver http://www.regular-expressions.info/wordboundaries.html para más detalles. El sitio es extremadamente útil para muchas preguntas básicas sobre expresiones regulares.


/b es un límite de palabra de ancho cero. Específicamente:

Coincide con la posición entre un carácter de palabra (cualquier cosa que coincida con / w) y un carácter que no sea de palabra (cualquier cosa que coincida con [^ / w] o / W), así como al principio o al final de la cadena si la primera y / o los últimos caracteres en la cadena son caracteres de palabras.

Ejemplo:. ./b coincide con c en abc

/B es un límite sin palabras de ancho cero. Específicamente:

Coincide con la posición entre dos caracteres de palabra (es decir, la posición entre / w / w), así como en la posición entre dos caracteres que no son de palabra (es decir, / W / W).

Ejemplo: /B./B coincide con b en abc

regular-expressions.info para obtener más información sobre expresiones regulares.