Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

330
Visualizações
PHP Regex: no se permiten más de 3 dígitos pero cualquier conteo para otros caracteres

Necesito modificar la exp:

 /^[-\p{L}\d]+$/u

El propósito es permitir un máximo de 3 dígitos en una cadena completa, pero se deben permitir caracteres de letras y guiones sin restricciones de cantidad. No importa dónde se encuentren los dígitos dentro de la cadena. Por ejemplo:

 test345 //this should match 345te-st //this should match 3454dtest //this shouldn\'t match

Ya probé algunos patrones, pero no funcionan correctamente:

 /^[-\p{L}\d{0,3}]+$/u /^[-\p{L}]+[\d]{0,3}+$/u /^([-\p{L}]+)([\d]+){0,3}$/u
over 4 years ago · Santiago Trujillo
1 Respostas
Responde à pergunta

0

Los patrones que probó no funcionan correctamente y coinciden con un máximo de 3 dígitos en cualquier parte de la cadena porque entre los puntos de anclaje inicial y final:

  • Esta notación está completamente en una clase de caracteres [-\p{L}\d{0,3}]+ que coincide repitiendo 1+ veces cualquiera de los caracteres enumerados entre [...] (Por lo tanto, no hay límite de dígitos debido a el + )
  • Esta notación [-\p{L}]+[\d]{0,3}+ coincide 1+ veces [-\p{L}] seguido de 0-3 dígitos consecutivos (por lo que los dígitos no pueden estar al principio por ejemplo)
  • Esta notación ([-\p{L}]+)([\d]+){0,3} usa 2 grupos de captura, pero el orden aquí también es 1+ veces [-\p{L}] y 0- 3 dígitos consecutivos (solo aquí se repite el grupo de captura)

Si también se permiten cadenas vacías:

 ^(?:[\p{L}-]*\d){0,3}[\p{L}-]*$
  • ^ Comienzo de cadena
  • (?:[\p{L}-]*\d){0,3} Coincide 0-3 veces con repeticiones opcionales de [\p{L}-] y un solo dígito
  • [\p{L}-]* Coincidir con repeticiones opcionales de [\p{L}-] al final
  • $ Fin de la cadena

Demostración de expresiones regulares

De lo contrario, puede afirmar que la cadena no está vacía usando (?!$)

 ^(?!$)(?:[\p{L}-]*\d){0,3}[\p{L}-]*$

Demostración de expresiones regulares

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda