- Este artigo discute como calcular a diferença e a interseção entre duas expressões regulares (regexes).
- O autor mostra o processo fornecendo equações e resultados como α < β = false, α = β = true, α > β = false, α & β = α ^ β = ∅, α - β = ∅.
- O artigo também inclui uma breve introdução à seguinte gramática de expressões regulares:
. corresponde a qualquer caractere único
xy é concatenação: corresponde a x e depois y
x|y é alternância: corresponde a x ou y
x* é estrela de Kleene: corresponde a x zero ou mais vezes
(xyz) é agrupamento: trata xyz como um único item
() é a expressão regular vazia e corresponde à string vazia
x+ é plus de Kleene: corresponde a x uma ou mais vezes
x? é opcional: corresponde opcionalmente a x
x{n} é potência: concatena x com ele mesmo n vezes
x{m,n} é repetição: concatena x com ele mesmo de m a n vezes
[a-z0-9] é agrupamento: corresponde a qualquer caractere único dentro do grupo
[^a-z0-9] é agrupamento negado: corresponde a qualquer caractere único que não esteja no grupo
\c é escape: corresponde ao caractere especial c
\u001a é escape Unicode: corresponde ao caractere UTF-16 correspondente
a, b, c significam que todos os demais caracteres correspondem a si mesmos.
- O artigo também menciona recursos não suportados, como âncoras, asserções de largura zero, backreferences, extração de subgrupos, busca ou correspondência parcial e outras flags que alteram o comportamento.
- Para mais detalhes, o autor menciona consultar a página do GitHub de
antimirov.
- O autor deste artigo é Eiríkr Åsheim, conhecido como @d6 no Twitter e no Mastodon.
1 comentários
Comentário do Hacker News