Напишіть регулярний вираз, який відповідає заданому рядку, що складається з трьох невід’ємних цілих чисел, розділених пробілом, якщо і лише якщо останнє ціле число є сумою попередніх двох. Відповіді можуть бути цілими числами будь-якої системи числення з радіусом між 2 та 10.
Тестові справи
Вони повинні провалюватися:
0 1 2
10 20 1000
Вони повинні відповідати:
10 20 30
28657 46368 75025
0 0 0
Правила
Ваша відповідь повинна складатися з одного регулярного вираження без будь-якого додаткового коду (крім, необов'язково, списку модифікаторів регулярних виразів, необхідних для роботи вашого рішення). Ви не повинні використовувати функції смаку регулярних виразів вашої мови, які дозволяють викликати код на мові хостингу (наприклад, модифікатор ел. Perl).
Вкажіть, будь ласка, свій аромат регулярного вираження.
Це гольф-реджекс, тому виграє найкоротший регулярний вираз у байтах. Якщо для вашої мови потрібні роздільники (зазвичай /.../) для позначення регулярних виразів, не рахуйте самих роздільників. Якщо для вашого рішення потрібні модифікатори, додайте один байт на модифікатор.
Кредити Мартіну Ендеру та Джайте за правила регулярного гольфу.
У мене є підстави вважати, що це можливо на основі рішення Мартіна Ендера для пошуку та збільшення цілих чисел із регулярними виразами .
/e
Модифікатор Perl 5 застосовується лише до підстановок, і це не єдиний спосіб запуску зовнішнього коду. Також це повністю дискваліфікує Perl 6, оскільки регулярний вираз є лише методом з додатковим синтаксисом. (Причина полягає в тому, що полегшує читання та запис регексів) В результаті всі функції, необхідні в архаїчних регулярних виразках, не потрібні (або включені), як тільки ви ввели код Perl 6. (це означає, що, мабуть, неможливо виконати цей виклик, якщо ви просто обмежитеся переродженням конкретного коду) /^(\d+)**3%' '$ <?{$0[2]==[+] $0[0,1]}>/
або /^(\d+)' '(\d+)' '(\d+)$ <?{$2==$0+$1}>/
або/^(\d+)' '(\d+){}" {$0+$1}"$/