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

134
Vistas
Regex patrón repetido

Estoy tratando de hacer coincidir el siguiente patrón:

 ((1.0 4) (2.0 5) .... (10.0 8))

La tupla (XN) , donde X es un número de punto flotante con exponente opcional y N es un número entero, se puede repetir varias veces.

Probé en este sitio web y pude generar una expresión regular para un número fijo de tuplas. Por ejemplo para 2 tuplas obtendría

 ^\(\(([+-]?(?=\.\d|\d)(?:\d+)?(?:\.?\d*))(?:[eE]([+-]?\d+))?\s[0-9]+\)\s\(([+-]?(?=\.\d|\d)(?:\d+)?(?:\.?\d*))(?:[eE]([+-]?\d+))?\s[0-9]+\)\)$

¿Cómo puedo modificar el patrón para que el número de tuplas sea arbitrario? Creo que tendré que usar algún tipo de agrupación, pero regex es bastante nuevo para mí.

over 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

Puedes usar el siguiente patrón:

 ^\(\(\d+(?:\.\d+)? \d+\)(?:\s*\(\d+(?:\.\d+)? \d+\))*\)$

Manifestación

Este patrón coincide con:

 ^ \( ( \(\d+(?:\.\d+)? \d+\) a leading tuple (?:\s*\(\d+(?:\.\d+)? \d+\))* space, more tuples \) ) $
over 4 years ago · Santiago Trujillo Denunciar

0

"La tupla (XN), donde X es un número de punto flotante con exponente opcional y N es un número entero , se puede repetir varias veces".

Para asegurarse de tener 1+ tuplas (con exponentes opcionales), puede usar:

 ^\(\([-+]?\d*\.\d+([eE][-+]?\d+)?\s\d+\)(?:\s\([-+]?\d*\.\d+([eE][-+]?\d+)?\s\d+\))*\)$

Ver una demostración en línea


  • ^ - Anclaje de línea de salida;
  • \(\( - Dos paréntesis de apertura literales;
  • [-+]?\d*\.\d+([eE][-+]?\d+)? - Para hacer coincidir su número de coma flotante con un exponente opcional, hacemos coincidir: un guión opcional o un signo más seguido de 0+ dígitos y un punto literal con 1+ dígitos. Después de eso, hay un grupo de captura opcional para hacer coincidir el exponente con una letra 'e', un guión opcional o más y 1+ dígitos;
  • \s\d+\) - Para finalizar la tupla, el patrón coincide con: Un solo carácter de espacio en blanco y 1+ dígitos para coincidir con la parte entera de la tupla antes de un paréntesis de cierre;
  • (?:\s.....)* - El truco a continuación es que usamos un grupo que no es de captura para hacer coincidir un único carácter de espacio en blanco y el patrón que usamos para nuestra tupla. Al cerrar este grupo de no captura, haga coincidir 0+ veces para permitir cualquier número de tuplas;
  • \)$ - Termina el patrón con un paréntesis de cierre literal y el ancla de la línea final.

O, si está disponible, captura la primera tupla en un grupo de captura y repite ese patrón exacto con una referencia inversa:

 ^\((\([-+]?\d*\.\d+([eE][-+]?\d+)?\h\d+\))(?:\h(?1))*\)$

Ver una demostración en línea

over 4 years ago · Santiago Trujillo Denunciar

0

Puede verificar el patrón haciendo coincidir la cadena con la siguiente expresión regular.

 ^\((?:\(\d+\.\d(?: \d+)?\)(?: |(?=\)$)))+\)$

Manifestación

La expresión regular se puede dividir de la siguiente manera.

 ^ # match beginning of string \( # match '(' (?: # begin non-capture group \( # match '(' \d+\.\d # match 1+ digits, '.', 1 digit (?: \d+)? # optionally ('?') match a space then 1+ digits \( # match ')' (?: # begin non-capture group [ ] # match a space | # or (?=\)$) # positive lookahead asserts next char is ')' at end of string ) # end non-capture group )+ # end non-capture group and execute one or more times \) # match ')' $ # match end of string
over 4 years ago · Santiago Trujillo 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