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

201
Vistas
PHP Regex coincide con los ID de incremento con espacios opcionales

Tratando de encontrar incrementos en cadenas como el propósito previsto (banca), etc.

Intento crear una expresión regular que coincida con 123456 ... y 123 456 ... .

Recibo las líneas de propósito previstas implosionadas sin espacio vacío. Entonces obtendré el incremento como FooBar 123456 Baz FooBar 123456Baz o FooBar123456Baz .

Los incrementos comienzan con 15 o 16. Ejemplos: 150000000001 160000000001 .

Lo que obtuve: (^\s*|[^0-9])((15|16)(?:\d\s?){10})([^0-9]|\s*$)

 Pattern break down: # // Begin of string (perhaps empty spaces) OR no digit. (^\s*|[^0-9]) // Prefix "15" or "16" and 10 digits (perhaps empty spaces between). ((15|16)(?:\d\s?){10}) // Not following by digit OR (perhaps empty spaces between) end of string. ([^0-9]|\s*$) #

El primer problema que tengo es que (?:\d\s?) siempre selecciona un espacio vacío después. El segundo problema es que mis intentos al principio y al final realmente no funcionan.

La parte principal es ((15|16)(?:\d\s?){10}) . Pero esto también continúa seleccionando después de los saltos de línea, lo que no debería hacer. Es por eso que trato de limitar las coincidencias con "no 0-9 O final|comienzo de línea".

Estoy probando esto en regex101.com

Ejemplos de lo que debe coincidir :

 -- no empty space at start of line, and one or more spaces between, and none-number before|after 150000000001 150000000001 150000000001 150000000001 d 150000000001d 150000000001 d150000000001d -- empty space before and in between 150 000 000 001 15 00 00 00 00 01 --not a must tho 150000000001 -- just a string of the increment only 160000000001 -- just a string of the increment only

El problema de la nueva línea -

 -- the new line problem Foo Bar160000000 001 Baz

selecciona

 160000000 001

que no debe.

¿Cómo restringir adecuadamente el principio y el final?

Gracias por tu tiempo.

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

0

Puedes usar

 /(?<!\d)1[56]\d(?:\h?\d){9}(?!\d)/

La expresión regular coincide con:

  • (?<!\d) - un límite de dígitos a la izquierda, no se permite ningún dígito inmediatamente a la izquierda
  • 1 - un carácter 1
  • [56] - 5 o 6 caracteres
  • \d - cualquier dígito
  • (?:\h?\d){9} - nueve apariciones de un espacio en blanco horizontal opcional y cualquier dígito
  • (?!\d) - un límite de dígitos a la derecha, no se permite ningún dígito inmediatamente a la derecha.
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