Saltar al contenido

expresiones regulares para obtener string entre llaves

Esta es el arreglo más válida que te podemos brindar, sin embargo estúdiala detenidamente y valora si se puede adaptar a tu proyecto.

Solución:

Probar

/(.*?)/

Eso significa, haga coincidir cualquier carácter entre y , pero no sea codicioso: haga coincidir el más corto string que termina con } (el ? deja de * ser codicioso). Los paréntesis le permiten extraer la parte coincidente.

Otra forma sería

/([^]*)}/

Esto coincide con cualquier carácter excepto un carácter } (otra forma de no ser codicioso)

/([^]+)}/

/        - delimiter
       - opening literal brace escaped because it is a special character used for quantifiers eg 2,3
(        - start capturing
[^]     - character class consisting of
    ^    - not
    }    - a closing brace (no escaping necessary because special characters in a character class are different)
+        - one or more of the character class
)        - end capturing
}       - the closing literal brace
/        - delimiter

Si tu string siempre será de ese formato, una expresión regular es exagerada:

>>> var g='getThis';
>>> g.substring(1,g.length-1)
"getThis"

substring(1 significa comenzar un carácter en (justo después del primer ) y ,g.length-1) significa tomar caracteres hasta (pero sin incluir) el carácter en el string longitud menos uno. Esto funciona porque la posición está basada en cero, es decir g.length-1 es la última posición.

Para lectores que no sean el cartel original: Si posee para ser una expresión regular, use /([^]*)/ si desea permitir cadenas vacías, o /([^]+)}/ si solo desea hacer coincidir cuando hay al menos un carácter entre las llaves. Desglose:

  • /: iniciar el patrón de expresión regular
    • : una llave literalmente
      • (: empezar a capturar
        • [: start defining a class of characters to capture
          • ^: “anything other than }
        • ]: OK, esa es nuestra definición de clase completa
        • *: cualquier número de caracteres que coincidan con la clase que acabamos de definir
      • ): termine de capturar
    • }: una llave literal debe seguir inmediatamente lo que capturamos
  • /: finaliza el patrón de expresión regular

Comentarios y puntuaciones

Puedes proteger nuestra investigación escribiendo un comentario o puntuándolo te estamos eternamente agradecidos.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

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