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

203
Visualizações
expresiones regulares para restringir caracteres especiales excepto unos pocos

Pude escribir una expresión regular para validar los siguientes criterios para un cuadro de entrada.

  1. contener un mínimo de 14 caracteres
  2. contener al menos 1 letra mayúscula (AZ)
  3. contener al menos 1 letra simple (az)
  4. contener al menos 1 número (0-9)
  5. contener al menos 1 símbolo especial (+=!@#$%^&*)

Regex -> ^(?=.*[0-9])(?=.*[az])(?=.*[AZ])(?=.*[+=!@#$%^&*])(?=\\S+$).{14,}$

Sin embargo, esta expresión regular permite otros caracteres especiales que no se mencionan. Quiero restringir todos los caracteres especiales excepto estos +=!@#$%^&*

¿Podría alguien ayudarme a modificar la expresión regular dada con los criterios anteriores?

about 4 years ago · Juan Pablo Isaza
2 Respostas
Responde à pergunta

0

en lugar . que permite cualquier carácter, puede usar un conjunto de caracteres para restringir los caracteres permitidos a un conjunto específico:

 ^(?=.*[0-9])(?=.*[az])(?=.*[AZ])(?=.*[+=!@#$%^&*])(?=\\S+$)[0-9A-Za-z+=!@#$%^&*]{14,}$
about 4 years ago · Juan Pablo Isaza Relatório

0

¿Por qué no usar conjuntos en lugar de una expresión regular?

 import string upperSet = set(string.ascii_uppercase) lowerSet = set(string.ascii_lowercase) numberSet = set("0123456789") specialSet = set("+=!@#$%^&*") allSets = [upperSet,lowerSet,numberSet,specialSet] validSet = set().union(*allSets) isValid = len(pw)>=14 and validSet.issuperset(pw) \ and all(s.intersection(pw) for s in allSets)

También puede usar el método de traducción para convertir cada grupo de caracteres en cuatro códigos que luego verifica que estén exactamente presentes en la cadena traducida:

 validCheck = str.maketrans(string.ascii_letters + "0123456789" + "+=!@#$%^&*", "1"*26+"2"*26+"3"*10+"4"*10) isValid = len(pw)>=14 and set('1234') == set(pw.translate(validCheck))))
about 4 years ago · Juan Pablo Isaza 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