Escreva uma expressão regular que corresponda a uma determinada sequência que consiste em três números inteiros não negativos e separados por espaço, se e somente se o último número inteiro for a soma dos dois anteriores. As respostas podem ser para números inteiros de qualquer sistema numérico com uma raiz entre 2 e 10.
Casos de teste
Estes devem falhar:
0 1 2
10 20 1000
Estes devem corresponder:
10 20 30
28657 46368 75025
0 0 0
Regras
Sua resposta deve consistir em um único regex, sem nenhum código adicional (exceto, opcionalmente, uma lista de modificadores de regex necessários para fazer sua solução funcionar). Você não deve usar recursos do tipo regex do seu idioma que permitam chamar código no idioma de hospedagem (por exemplo, o modificador e Perl).
Especifique o seu sabor regex na sua resposta.
Como o regex golf, ganha o menor regex em bytes. Se o seu idioma exigir delimitadores (geralmente /.../) para indicar expressões regulares, não conte os delimitadores. Se sua solução exigir modificadores, adicione um byte por modificador.
Créditos a Martin Ender e jaytea pelas regras de regex-golfe.
Tenho motivos para acreditar que isso é possível com base na solução de Martin Ender para encontrar e incrementar números inteiros com regex .
/e
modificador do Perl 5 se aplica apenas a substituições e não é a única maneira de executar código externo. Além disso, isso desqualifica Perl 6 inteiramente, pois um regex é apenas um método com sintaxe adicional. (O motivo é que isso facilita a leitura e gravação de expressões regulares) Como resultado, todos os recursos necessários nas expressões regulares arcaicas não são necessários (ou incluídos), como você inseriu no código Perl 6. (o que significa que provavelmente não é possível fazer esse desafio se você apenas limitar a regexar um código específico) /^(\d+)**3%' '$ <?{$0[2]==[+] $0[0,1]}>/
ou /^(\d+)' '(\d+)' '(\d+)$ <?{$2==$0+$1}>/
ou/^(\d+)' '(\d+){}" {$0+$1}"$/