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

141
Visualizações
Javascript regex (x|y) - ¿Se puede especificar mediante array.join('|')?

Estoy tratando de analizar el texto obtenido de la API de Wikipedia.

En detalle, estoy tratando de analizar el wikitexto de una página wiki completa en secciones separadas. En wikipedia, las secciones están divididas por títulos entre 2 y 5 símbolos iguales (p. ej. == TÍTULO ==). Entonces, todo el wikitexto de una página tiene un montón de esto, y estaba pensando que podría obtener el contenido de cada sección usando split() y regex. Aquí está mi intento ingenuo:

 let wikitext = text; // Obtained from the API let sectiontitles = [sectiontitle1, sectiontitle2...]; // Obtained from the API let sectionsPiped = sectiontitles.join('|'); let regex = new RegExp(`\\={2,5}\\s*(${sectionsPiped})\\s*\\={2,5}`, 'g'); console.log(wikitext.split(regex));

Esto funcionó, pero no de la manera que esperaba. Digamos que el wikitexto tiene el siguiente contorno (reemplazando \n con saltos de línea reales para mejorar la legibilidad):

 == Section 1 == SECTION-1-TEXT === Section 1.1 === SECTION-1.1-TEXT === Section 1.2 === SECTION-1.2-TEXT

Entonces el código anterior devuelve:

 0: '' 1: 'Section 1' 2: 'SECTION-1-TEXT' 3: 'Section 1.1' 4: 'SECTION-1.1-TEXT' 5: 'Section 1.2' 6: 'SECTION-1.2-TEXT'

pero esperaba:

 0: '' 1: 'SECTION-1-TEXT' 2: 'SECTION-1.1-TEXT' 3: 'SECTION-1.2-TEXT'

Supongo que estoy haciendo algo mal con la expresión regular (x|y), así que necesito su ayuda con esto.

Tenga en cuenta que API:Parsing_wikitext puede analizar una sola sección, pero no varias secciones (por este motivo, tendría que iterar las solicitudes de API si intento hacer esto con la API, pero quiero evitarlo porque, de lo contrario, el código será lento ). Y al final, necesito obtener una matriz de los contenidos de cada sección, INCLUYENDO los encabezados de los títulos, así:

 0: '' 1: '== Section 1 ==\nSECTION-1-TEXT' 2: '=== Section 1.1 ===\nSECTION-1.1-TEXT' 3: '=== Section 1.2 ===\nSECTION-1.2-TEXT'

Puedo hacer esto agregando los encabezados a la penúltima matriz anterior después de dividir todo el wikitexto, pero ¿hay alguna forma más fácil de hacerlo? Cualquier ayuda sería apreciada.

about 4 years ago · Juan Pablo Isaza
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