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

138
Visualizações
Regex group optimization

In the context of using regexp for matching documents against several keywords it could takes quadratic time (number of documents × number of keywords).

With a set of the following keywords:

['ant', 'antelope', 'albatross', 'alligator']

I would produce the stupid regex:

/ant|antelope|albatross|alligator/

But I'm looking for a solution which convert the set into something like:

/a(nt(|elope)|l(batross|ligator))/

which is quite more efficient

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

0

I produced a simple library to make that work available on npm npm i regexp-factorize which can be used as following

import { factorizeOr } from 'regexp-factorize';

const keywords = ['ant', 'antelope', 'albatross', 'alligator'];
const regexpString = factorizeOr(keywords);
const regexp = new RegExp(regexpString);

const document = "There's an alligator in my house";

console.log(regexp);                // /a(?:nt(?:|elope)|l(?:batross|ligator))/
console.log(regexp.test(document)); // true
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