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

142
Visualizações
Regex para capturar una cadena entre una cadena en una matriz en js

Si tenemos la siguiente cadena:

"hukhkhk\nClosing Date: Friday 22nd April 2022\nwdwqdwqdwqd\nClosing Date: Friday 22nd April 2023\newdewfewf"

y queremos obtener las 2 fechas "Friday 22nd April 2022" y "Friday 22nd April 2023"

¿Cómo hago para recuperar una matriz de todas las cadenas capturadas usando js?

[ "Friday 22nd April 2022", "Friday 22nd April 2023" ]

Hay un problema en mi expresión regular, pero no estoy seguro de cómo solucionarlo para que no coincida con todo lo que se encuentra entre el primer \n que encuentra:

(?<=Closing Date:\s)(.*)(?=\\n)

https://regexr.com/6k2uf

El js que probé es este:

 var reg = new RegExp('(?<=Closing Date: )(.*)(?=\\n)/g'); reg.exec("hukhkhk\nClosing Date: Friday 22nd April 2022\nwdwqdwqdwqd\nClosing Date: Friday 22nd April 2023\newdewfewf")
about 4 years ago · Juan Pablo Isaza
3 Respostas
Responde à pergunta

0

Un enfoque alternativo para sus datos de ejemplo, y cualquier dato con un marcador fácilmente definible para el texto requerido, sería split los datos en una matriz de líneas (marcadas en \n ), aplicar un filter de matriz a la matriz para eliminar elementos no que contiene la cadena de marcador y, finalmente, .map la matriz para que contenga solo la parte requerida que sigue a la cadena de marcador.

Los procesos se pueden unir en una sola línea como se demuestra en el siguiente fragmento:

 string = "hukhkhk\nClosing Date: Friday 22nd April 2022\nwdwqdwqdwqd\nClosing Date: Friday 22nd April 2023\newdewfewf"; markerString = "Closing Date: "; datesArray = string.split('\n').filter(text => text.indexOf(markerString) > -1).map(text => text.slice(text.indexOf(markerString)+ markerString.length)); console.log(datesArray)

about 4 years ago · Juan Pablo Isaza Relatório

0

(?<=Closing Date: )(.*?)(?=\\n)

Empieza a coincidir después de la Closing Date: (espacio incluido)

Deja de coincidir antes del primer \n que encuentra

Esto funcionó en tu ejemplo

ejemplo en vivo

about 4 years ago · Juan Pablo Isaza Relatório

0

Editar:

  1. Tuve que eliminar group names (no se usaban y marcaban una gran diferencia en el tiempo de ejecución)
  2. filtrado de cadenas vacías (@input edge) como resultado de split()
 const input = "hukhkhk\\nClosing Date: Friday 22nd April 2022\\nwdwqdwqdwqd\\nClosing Date: Friday 22nd April 2023\\newdewfewf"; const regex = /(?:(?:\\n|^).*?(?:\\n|$))(?:Closing\sDate:\s)?/mg const dates = input.split(regex).filter(date => date.length > 0); console.log(dates);

Afuera:

 [ 'Friday 22nd April 2022', 'Friday 22nd April 2023' ]

1ra respuesta:

Usando expresiones regulares para encontrar todo el contenido sin fecha:

 const re = /(?<junk>(?:\\n|^).*?(?:\\n|$))(?<delimiter>Closing Date: )?/gm

Luego, use JS split para obtener una matriz solo con fechas

 const dates = input.split(re);
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