Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

269
Vistas
Regex: expresión equivalente sin usar una mirada positiva hacia atrás

Necesito dividir 4d6/2d6/1d6 emparejando / . Sin embargo, para dividirlo necesito tener específicamente \d precediendo a / y otro \d|d sucediendo a / , para que otras expresiones como 1d6+db/2 no se dividan. Llegué a la solución de usar una mirada retrospectiva positiva, pero necesito que mi expresión regular también sea válida en los sistemas IOS. La solución que se me ocurrió es /(?<=\d)\/(?=\d|d)/g . ¿Hay alguna manera de crear un equivalente a esta expresión sin usar una mirada positiva hacia atrás?

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Puede usar un enfoque de extracción y coincidencia en lugar de dividir:

 /(?:\/|^)(.*?\d)(?=\/\d|$)/g /(?:\/|^)([\w\W]*?\d)(?=\/\d|$)/g

Vea la demostración de expresiones regulares . Su valor está en el Grupo 1. La expresión regular con [\w\W] también coincide con las líneas (ya que . no coincide con los saltos de línea de forma predeterminada).

Detalles :

  • (?:\/|^) - un grupo que no captura que coincide con / o el inicio de la cadena
  • (.*?\d) - Grupo 1: cualquier cero o más caracteres (aquí, aparte de los caracteres de salto de línea) la menor cantidad posible, y luego un dígito
  • (?=\/\d|$) - una ubicación seguida inmediatamente por / + dígito o final de cadena.

En JavaScript, puede usar const matches = Array.from(text.matchAll(/(?:\/|^)(.*?\d)(?=\/\d|$)/g), x => x[1]) , o, si no puede usar esta sintaxis, una extracción heredada más detallada como

 var s = "4d6/2d6/1d6"; var re = /(?:\/|^)(.*?\d)(?=\/\d|$)/g; var matches=[], m; while(m=re.exec(s)) { matches.push(m[1]); } console.log(matches)

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda