Previsiones de expresiones regulares de JavaScript

Las búsquedas anticipadas son los patrones que le piden a JavaScript que mire hacia adelante en la string para verificar los patrones previstos en la string. Lookahead y Lookbehind se conocen juntos como Lookaround . Usando Lookaheads podemos capturar fácilmente un grupo particular de caracteres solo si aparecen antes que otro conjunto de caracteres. Esto es útil cuando queremos buscar múltiples patrones en la misma string.

Sintaxis:

X(?=Y) //For positive lookaheads
X(?!Y) //For negative lookaheads

Tipos de anticipación: hay dos tipos de anticipación:

  • Anticipaciones positivas: buscará asegurarse de que un elemento en particular esté allí en el patrón de búsqueda, pero en realidad no coincidirá con él. Una anticipación positiva se crea encerrando un determinado patrón entre (?= y ).
  • Anticipaciones negativas: se asegurará de que un elemento en particular no esté en el patrón de búsqueda. Una anticipación negativa se crea encerrando un cierto patrón entre (?! y ).                                             

Nota: El ‘?’ El carácter también se puede utilizar como cuantificador .

Las búsquedas anticipadas son un poco confusas de entender, así que tomemos algunos ejemplos.

Ejemplo 1: Este ejemplo demuestra una anticipación positiva.

JavaScript

<script>
    let word1 = "butterfly";
    let word2 = "buttermilk";
    let exp = /(butter(?=fly))/;
    let result1 = (exp.test(word1));
    let result2 = (RegExp.$1);
    let result3 = (exp.test(word2))
    console.log(result1); //outputs “true”
    console.log(result2); //outputs "butter"
    console.log(result3); //outputs "false"
</script>

Explicación: en el ejemplo anterior, exp coincide con » mantequilla » solo si va seguido de » volar «. Después de probar la expresión con la palabra 1, el código genera el contenido de RegExp.$1, que es ‘ mantequilla ‘ y no ‘ mariposa ‘. fly ” parte del patrón está contenido dentro de un lookahead y, por lo tanto, no se devuelve como parte del grupo.

Producción:

Previsión positiva

Ejemplo 2: El ejemplo anterior se puede convertir a anticipación negativa:

JavaScript

<script>
    let word1 = "butterfly";
    let word2 = "buttermilk";
    let exp = /(butter(?!fly))/;
    let result1 = (exp.test(word1));
    let result2 = (exp.test(word2))
    let result3 = (RegExp.$1);
    console.log(result1); //outputs "false"
    console.log(result2); //outputs "true"
    console.log(result3); //outputs "butter"
</script>

Explicación: Aquí, el patrón coincide con » suero de leche » pero no con » mariposa «, ya que » mosca » no sigue a » mantequilla «. Después de probar contra word2, RegExp.$1 contiene » mantequilla » una vez más, no » suero de leche «.

Producción:

Previsión negativa

Veamos un ejemplo práctico para comprender correctamente las búsquedas anticipadas:

Declaración del problema: escriba una expresión regular para encontrar todos los artículos que tienen un estado actual de ‘vendido’.

No Señor. Vehículo Estado
1 Bicicleta Vendido
2 Bicicleta No vendido
3 Coche Reparar

La expresión regular para el requisito anterior será:

/ bike(?=\s+sold) /

De esta forma, podemos unir ciertas palabras no seguidas de algunos elementos. Estos elementos pueden ser personajes o grupos.

Nota: JavaScript admite búsquedas anticipadas de expresiones regulares, no admite búsquedas posteriores.

Navegadores compatibles:

  • Google Chrome
  • explorador de Internet
  • Firefox
  • Ópera
  • Safari

Publicación traducida automáticamente

Artículo escrito por priddheshinternship y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *