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

241
Visualizações
¿Cómo uso RegEx para encontrar parens que contienen AMBOS números y letras, no solo uno u otro?

En este ejemplo...

 (5) (dogs) (5 dogs) (dogs 5)

Me gustaría coincidir solo con...

 (5 dogs) -or- (dogs 5)

Los números pueden ser cualquier cantidad de dígitos, contener comas, puntos decimales, operadores matemáticos, signos de dólar, etc. Lo único a lo que debo prestar atención es que hay números y caracteres alfabéticos presentes.

Comencé con esta modificación de un ejemplo proporcionado por hrs usando esto para RegEx...

 \(((letter).*(number))\)|((number).*(letter))\)

solo capturar esto...

 (number letter) -or- (letter number)

pero no...

 (number) (letter)

modificando la expresión para que sea...

 \(((^[a-zA-Z]).*(^[0-9]))\)|((^[0-9]).*(^[a-zA-Z]))\)

...pero obviamente no sé lo que estoy haciendo.

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

0

Puede usar la búsqueda anticipada para afirmar que hay un número y una letra dentro de cada conjunto de paréntesis:

 \((?=[^)\d]*\d)(?=[^)az]*[az])[^)]+\)

Las dos búsquedas anticipadas afirman que hay una cierta cantidad de caracteres de paréntesis que no son de cierre y luego un dígito (primera búsqueda anticipada (?=[^)\d]*\d) ) o una letra (segunda búsqueda anticipada (?=[^)az]*[az]) ). El [^)]+ luego coincide con los caracteres entre ( y ) .

Demostración en regex101

En Javascript:

 const str = '(5) (dogs) (5 dogs) (dogs 5)' const regex = /\((?=[^)\d]*\d)(?=[^)az]*[az])[^)]+\)/ig console.log(str.match(regex))

about 4 years ago · Juan Pablo Isaza Relatório

0

Como alternativa con una única anticipación:

 \((?=[^)az]*[az])[^\d)]*\d[^)]*\)

Explicación

  • \( Partido (
  • (?= anticipación positiva
    • [^)az]*[az] Coincide con cualquier carácter excepto ) o az, luego coincide con az
  • ) Cerrar la búsqueda anticipada
  • [^\d)]*\d Coincide con cualquier carácter excepto un dígito o ) y luego coincide con un dígito
  • [^)]* Coincide con cualquier carácter excepto )
  • \) Partido )

Demostración de expresiones regulares

 const s = '(5) (dogs) (5 dogs) (dogs 5)'; const regex = /\((?=[^)az]*[az])[^\d)]*\d[^)]*\)/ig; console.log(s.match(regex));

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