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

139
Visualizações
la expresión regular correcta para capturar una parte de la URL

Hay algunos casos de URL como a continuación.

 (1) https://m.aaa.kr/category/outer/55/ (2) https://m.aaa.kr/category/inner/5/ (3) https://m.aaa.kr/product/jacket/3031/category/55/display/1/ (4) https://m.aaa.kr/product/shirts/30/category/5/display/1/

Necesito la expresión regular correcta para capturar la parte "55" o "5" de esas URL.

Lo que probé fue /(?:\/category\/\w+)(\/category\/)|(\d+[^\/])/g

Sin embargo, esta expresión regular también captura el "3031" en el caso (3), "30" en el caso (4). Y no puede capturar "5" en los casos (2) y (4).

¿Cómo puedo arreglarlo para hacer lo correcto?

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

0

Tenga en cuenta que su expresión regular /(?:\/category\/\w+)(\/category\/)|(\d+[^\/])/g coincide con múltiples ocurrencias (debido a la bandera g ) del patrón que coincide con /category/ , luego uno o más caracteres de palabra y luego /category/ (capturado en el Grupo 1) o captura en el Grupo 2 uno o más dígitos y luego un carácter que no sea / . Este es definitivamente un patrón incorrecto, ya que solo desea hacer coincidir y capturar dígitos en el Grupo 2. Además, la primera alternativa no parece coincidir con nada significativo para usted, ya que no restringe la segunda alternativa.

Además, el uso de \w+ para hacer coincidir cualquier texto entre dos barras no suele ser eficaz, ya que las partes de la URL a menudo contienen - caracteres, que no son caracteres de palabras.

Entonces, lo que puedes usar es uno de

 /\/category\/(?:[\w-]+\/)?(\d+)/ /\/category\/(?:[^\/]+\/)?(\d+)/

Tenga en cuenta que no hay una bandera g ya que todo lo que necesita es la primera coincidencia. Detalles :

  • \/category\/ - una cadena /category/
  • (?:[\w-]+\/)? - una secuencia opcional de uno o más caracteres de palabras o guiones y luego un / (nota [^\/]+ coincide con uno o más caracteres que no sean / , y también un grupo que no captura que ayuda a mantener la estructura del objeto de coincidencia más simple)
  • (\d+) - Grupo 1: uno o más dígitos.

Vea la demostración de JavaScript:

 const urls = ['https://m.aaa.kr/category/outer/55/','https://m.aaa.kr/category/inner/5/','https://m.aaa.kr/product/jacket/3031/category/55/display/1/','https://m.aaa.kr/product/shirts/30/category/5/display/1/'] const rx = /\/category\/(?:[\w-]+\/)?(\d+)/; for (const url of urls) { document.body.innerHTML += '"' + url + '" => "<b>' + (rx.exec(url) || ['',''])[1] + '</b>"<br/>'; }

about 4 years ago · Juan Pablo Isaza Relatório

0

¿Qué tal capturar el primer dígito (o dígitos) directamente después de /category/ o /category/someothertext/

con: /\/category\/(\w+\/)?(\d+)/g

Puede probarlo en línea aquí: https://regex101.com/r/n4dj1r/1

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