Примечание . Эта задача теперь закрыта. Представление будущих полицейских не будет рассматриваться как принятый ответ. Это сделано для того, чтобы никто не мог опубликовать очень простое регулярное выражение в будущем, которое остается неиспользованным, потому что никто больше не заинтересован в вызове.
Вызов ментов
Вы должны написать короткое, запутанное регулярное выражение, удовлетворяющее следующей спецификации:
Вы можете выбрать любой вкус, который можно свободно проверить в Интернете. На StackOverflow есть хороший список онлайн-тестеров . В частности, Regex101 должен быть хорошим для начала, поскольку он поддерживает PCRE, ECMAScript и Python. Вы можете увеличить лимит времени, нажав на гаечный ключ в правом верхнем углу, если это необходимо. Пожалуйста, включите тестер, которого вы выбрали в своем ответе.
Если для вашего вкуса нет подходящего тестера, вы можете также использовать онлайн-переводчика, например ideone, и написать небольшой скрипт на языке хоста, который люди могут использовать для проверки вашей заявки.
- Вы можете использовать любую функцию этого варианта, которая напрямую не вызывает язык хоста (например, функции оценки кода в Perl).
- Точно так же вы можете использовать любые модификаторы (если они есть у вашего аромата), если только они не приводят к оценке кода.
- Ваше регулярное выражение должно принимать хотя бы одну строку S и отклонять хотя бы одну строку T , каждая из которых имеет длину не менее 16 и не более 256 символов, в течение разумного промежутка времени (не значительно дольше минуты). S и T могут содержать символы Unicode, которые не являются ASCII, если есть способ ввести их в онлайн-тестер. Любая такая пара строк будет ключом к вашему представлению.
- Ваше регулярное выражение может занять произвольно много времени на любом другом входе.
Суть задачи заключается в создании регулярного выражения, ключ которого трудно найти. То есть, должно быть трудно сказать, какая строка не соответствует или какая строка соответствует (или, возможно, даже обе, если регулярному выражению требуются дни для завершения всех строк кроме ключа).
Вызов грабителей
Всем пользователям, включая тех, кто представил свои собственные регулярные выражения, рекомендуется «взломать» другие материалы. Отправка взламывается, когда один из ее ключей публикуется в соответствующем разделе комментариев.
Важное замечание: Убедитесь, что обе строки, которые вы публикуете, содержат от 16 до 256 символов включительно, даже если для какой-либо части ключа может использоваться почти любая строка.
Если отправка сохраняется в течение 72 часов без изменения или взлома, автор может раскрыть действительный ключ, отредактировав его в тег-спойлер в своем ответе. Это сделает его ответ «безопасным», т. Е. Его больше нельзя взломать.
Разрешается только одна попытка взлома на каждую отправку для каждого пользователя. Например, если я отправляю пользователю X: «Ваш ключ - 0123456789abcdef
/ fedcba9876543210
». и я ошибаюсь, пользователь X отвергнет мое предположение как неправильное, и я больше не смогу отправлять дополнительные предположения для этого представления, но я все еще могу взломать другие представления (и другие могут все еще взломать это представление).
Взломанные материалы исключаются из спора (при условии, что они не «безопасны»). Они не должны быть отредактированы или удалены. Если автор желает представить новое регулярное выражение, он должен сделать это в отдельном ответе.
Не взламывайте свои собственные представления!
Примечание. Для длинных строк в комментариях без пробелов SE вставляет разрывы строк вручную в виде двух символов Юникода. Таким образом, если вы разместите ключ в обратных кавычках, который настолько длинен, что он переносится между непробельными символами, вы не сможете скопировать ключ обратно в тестер регулярных выражений. В этом случае предоставьте постоянную ссылку соответствующему тестеру регулярных выражений с регулярным выражением копа и вашим ключом - большинство тестеров включают эту функцию.
счет
Счет полицейского будет равен размеру их регулярного выражения в байтах (шаблон плюс модификаторы, потенциальные разделители не учитываются), при условии, что он не был взломан. Наименьшее количество баллов за «безопасное» представление выиграет.
Оценка грабителя будет количеством взломанных представлений. В случае связи, общий размер байтов, которые они взломали, будет использоваться для разрешения конфликтов. Здесь побеждает наибольшее количество байтов.
Как указано выше, любой полицейский может участвовать в качестве грабителя и наоборот.
Я буду поддерживать отдельные таблицы лидеров для двух частей задачи.
Leaderboards
Последнее обновление: 19.10.2014, 20:33 UTC
Менты:
Материалы, выделенные курсивом, еще не безопасны.
- nneonneo , 841 байт
- Wumpus Q. Wumbley , 10 602 байта
- Sp3000 , 52506 байт
- user23013 , 53,884 байта
- nneonneo , 656 813 байт
Грабители:
- user23013 , Cracked: 11, общий размер: 733 + 30 + 2,447 + 71 + 109 + 121 + 97 + 60 + 141 + 200,127 + 7,563 = 211,499 байт
- nneonneo , Трещины: 10, Общая площадь: 4,842 + 12,371 + 150 + 3,571 + 96 + 168 + 395 + 1043 + 458 + 17,372 = 40,466 байт
- Wumpus В. Wumbley , Трещины: 6, общая площадь: 22 + 24 + 158 + 32 + 145,245 + 145,475 = 290,956 байт
- Dennis , Cracked: 2, общий размер: 70 + 73 = 143 байта
- harius , Cracked: 1, общий размер: 9,998 bytes
- g.rocket , Cracked: 1, общий размер: 721 bytes
- стокастик , трещины : 1, общий размер: 211 байт
- Sp3000 , трещины : 1, общий размер: 133 байта
- TwiNight , Cracked: 1, общий размер: 39 байтов
источник
Ответы:
.NET регулярное выражение, 841 байт [Безопасно!]
Теперь, когда у меня есть безопасный вход, давайте посмотрим, как мало я могу сделать регулярное выражение!
Предварительно подтверждено :
Функции:
Спасибо Sp3000 и user23013 за подсказку в .NET regex.
Через 72 часа я раскрываю ключ, чтобы сделать это представление безопасным.
Матч :
Несоответствие :
Aren'tHashFunctionsFun?
Объяснение:
источник
(?<a>){53}
. Похоже, он захватывает пустой шаблон в именованную группуa
53 раза. Так установить, аa=""
затем повторить еще 52 раза? Но я не знаю,(?<
означает ли это то же самое в идее Microsoft о регулярном выражении. Их документация даже не упоминает об этом . Если даже конкурс регулярных выражений закончится недокументированными расширениями Microsoft, работающими в Unix, мое существование не имеет смысла.(?<a>){53}
вставляет пустую строку 53 раза. Вы можете вытолкнуть стек, используя(?<-a>)
. Надеюсь, теперь понятно, почему эта конструкция так полезна.Basic Regex, 656813 байт [безопасно!]
Регулярное выражение, чтобы закончить все регулярные выражения. Один последний ура в ночь.
Тестируется под PCRE, Perl, Python и многими другими.
bzip2'd и base64-закодированная версия на Pastebin: http://pastebin.com/9kprSWBn (Pastebin не хотел сырую версию, потому что она была слишком большой).
Чтобы убедиться, что вы получили правильное регулярное выражение, вы можете проверить, что его MD5 хеш
или проверьте, что это начинается с
и заканчивается
Ключ по-прежнему приятный удобный 256 байт.
Я протестировал это регулярное выражение с Python, но учтите, что это регулярное выражение не использует никаких специальных функций Python. Действительно, за исключением
(?:)
(в качестве механизма группировки), он на самом деле не использует никаких особенностей какого-либо движка регулярных выражений: только базовые классы символов, повторения и привязки. Таким образом, он должен быть тестируемым во множестве механизмов регулярных выражений.Ну, на самом деле, я все еще могу решить эту проблему, если предположить, что кто-то не сразу решит мелкие проблемы ... но я держу пари, что у людей будут проблемы с регулярным выражением в 1 ГБ ...
Через 72 часа это представление остается без изменений! Таким образом, я сейчас раскрываю ключ, чтобы сделать представление безопасным. Это первое безопасное представление, после того как более 30 сообщений были взломаны подряд постоянными грабителями.
Совпадение :
Massive Regex Problem Survives The Night!
Несоответствие :
rae4q9N4gMXG3QkjV1lvbfN!wI4unaqJtMXG9sqt2Tb!0eonbKx9yUt3xcZlUo5ZDilQO6Wfh25vixRzgWUDdiYgw7@J8LgYINiUzEsIjc1GPV1jpXqGcbS7JETMBAqGSlFC3ZOuCJroqcBeYQtOiEHRpmCM1ZPyRQg26F5Cf!5xthgWNiK!8q0mS7093XlRo7YJTgZUXHEN!tXXhER!Kenf8jRFGaWu6AoQpj!juLyMuUO5i0V5cz7knpDX0nsL
Regex объяснение:
источник
ECMAScript (10602 байта)
(Примечание по языку: я вижу много постов, помеченных как ruby, или python, или что-то еще, когда они действительно не используют какие-либо языковые функции. Для этого требуется только
(?!...)
и(?=...)
поверх POSIX ERE с обратными ссылками. Эти функции, вероятно, в движок регулярных выражений вашего любимого языка, так что не отчаивайтесь от попыток выполнить это задание, потому что я решил использовать онлайн-тестер javascript.)Просто немного веселья, не так сложно в вычислительном отношении, как некоторые другие.
Протестируйте здесь: http://regex101.com/r/kF2oQ3/1
(чириканье сверчков)
Нет берущих? Странно разочаровывать мысль о публикации спойлера без доказательств того, что кто-то смотрел на него достаточно долго, чтобы понять, что это за проблема.
Я пишу полное объяснение, чтобы опубликовать позже, но я думаю, что я был бы счастливее, если бы кто-то победил меня.
Когда я сказал , что это не было «вычислительно сложно» ... это является экземпляром NP-полной задачи, но не большой экземпляр.
Подсказка: это тип головоломки с карандашом и бумагой. Но я был бы очень впечатлен, если бы вы могли решить эту проблему с помощью карандаша и бумаги (после декодирования регулярного выражения в форму, подходящую для печати).
Спойлер время
Здесь есть несколько уровней спойлеров. Если вы еще не решили регулярное выражение, вы можете попробовать еще раз после прочтения только первого блока спойлера. Фактический ключ, который соответствует регулярному выражению, находится после последнего блока спойлера.
Второй слой порчи:
Конечный слой порчи:
Несоответствие:
bananabananabanana
Соответствие:
ƜpRԱԺեþɋэʌkȿՌOfɄCҷɐխɷլԿѪɮȹÞӿѤNɹЦʞӶdѯχԎԷӺջՒϻЉAɔbУƾձҴԉҨʬHѺӄӾԏxчɎֆFƈɊΞζџiփΨӃϣɂƱϬɣɿqϚɰƐդΦժʮgBƕȴւҵɺҏϯƋՐѠɴҔŋԀɤȻɸaЊѬҥѾҸшɉҶjnMʙƸՊʡEɟμƩςʢϪʊLՅȾɝUʝՉϥҁѧЩӷƆԋҳϙѭϢմԂɥȸhΔԓƛѿբՑҩSDȽԅҠGeωƪՈɅϛɃwҀҤՂΩßɜȶʟɀҹԄҡλѥՃȵҜҎɞԲЭщɌИдϠʄԻʫҝyϼӻҺЋϗѩͽɒʈէϞՀթЪΠƏƣoտʓюrԾϟϤƺϫճлљIնǂƎԳuȺԃQϧԶʁWըիcYЏʘƜ
Доказательство: http://regex101.com/r/pJ3uM9/2
источник
Вкус Perl, 158 [треснувший]
Вот моя первая попытка:
Проверьте это на ideone.com
источник
j'k3j'kj'k3j'kj'kj'k3j'k3j'kj'k3j'kj'kj'k3R-k-<grc>-j'k<grc>-j'k$j'k-k-
Несоответствие:HOLYCRAPTHATWASEVIL
(совпадение доступно на ideone.com/pXaGaX для доказательства)[^_^]
(-.-)
(?|...)
сложно, но это документально. См. Отрывок,perlre
который начинается сBe careful when using the branch reset pattern in combination with named captures.
. Хитрость заключается в том, что группы с одинаковым номером, но разными именами, представляют собой одну и ту же группу , а группы с одинаковыми именами, но с разными номерами, являются разными группами .Аромат JS, 9998 байт [взломан]
Проверено на Regex101
Решение, которое я создал:
источник
M
кŇ
. Mathematica имеет функциюFindHamiltonianCycle
. Мы можем превратить это в цикл, пересекающегоŇ -> M
путем добавления нового края и подключенияŇ
иM
через него. К счастью, Mathematica находит такой цикл мгновенно. :)JS-совместимый RegEx - 3571 байт [взломан]
Я ... буду ... по крайней мере ... один ... без трещин ... подчинение. о \ __ / о
Разрешается практически на любой строке мгновенно. Тестируется на любой консоли JS.
+100 к любому, кто взломает этого зверя.
источник
ThatWasActuallyFun
. Non-матч :,,;,;,,;,;;;,;,;,;;,,,,;,,,;,;;,,,,,,;;,,,,;;,;,,,;,;;;;,;;,;;,;,,;,,;,;;;,;,;,;;,,,;,;;;;,;,;;;,;,,;,,,;,,,,;,;;;;;;,,,,,;,;,;;;;;,;;;,;;,,,;;;,,;,;;,,,;,,,,,,;,;,,;;,,;;,,,;,;;,,,;,,;;,;,;,;;;;,,;,;,,;;;;;,,;,,;;,,;,,;;,,,,;,,;,,;;,;;;,,,,,;,,,,,,,,;,,,,
.PCRE - 96 байтов UTF8, без разделителей, без флагов
[Побежден], потому что Nneonneo мудрый парень
Здесь нечего видеть, двигайся ...
источник
So just *SKIPthis one!
; Нет матча:This string is not accepted. This string is not accepted. This string is not accepted. This string is not accepted. This string is not accepted. This string is not accepted. This string is not accepted. This string is still not accepted. Snow leopards FTW.
Do just this one!
.Non-матч :WellThatWasTooEasy
. (Проверено с Perl 5.12 и Perl 5.18 на моей машине)JS-совместимый RegEx - 733 байта [взломан]
Давайте попробуем это во второй раз с обратными метриками: неуклюжее регулярное выражение, но относительно крошечный ключ (что наиболее важно, в пределах 256-байтового предела).
Разрешается практически на любой строке мгновенно. Проверено на RegExr.
Расширен (для удобства):
Удачи всем. ;)
источник
aaaabaaacaaadaaa
не матч:cacdbbcabdeababcdedaacdeecacbdabcd
.NET ароматизатор, 60 байт [взломан]
Проверено с помощью Regex Storm .
источник
1234567890012345
. Non-матч:1111222233334444
.٠߀०০੦૦୦௦౦೦൦๐໐༠၀႐០᠐᥆᧐᭐᮰᱀᱐꘠꣐꤀꩐0
Так что все они считаются цифрами в .NET ...Вкус Python: 211 байт [взломан]
Примечание. Этот ответ был опубликован до изменения правила о максимальной длине ключа.
Думал, что я получу мяч с этим:
(Проверено на RegExr )
источник
JS-совместимый RegEx - 12 371 байт [взломан]
После некоторой поддержки со стороны Мартина и увидев, что другие полицейские с радостью отправляют регулярные выражения размером более 600 КБ, я решил сделать решающий шаг еще раз с этим (и с проверенной версией здесь ).
Разрешается практически на любой строке мгновенно. Тестируется на любой консоли JS. К сожалению, размер делает его непроверенным для многих онлайн-тестировщиков регулярных выражений.
источник
this was not NP-hard
. Несоответствие :nerdnydeprdoypoypwwwdprelwsprwssddayaeeeysyaaaypowroplsaoprdaolasnoylaeaeadeosladnnosyoywyesorlrydwddadoeyponneeyaaapesenaalnneydaewndplredlerwaawlnrssapapaopnrdwnslowdoanlrernpwyyarpprwnrssdlaopsnnrnnnardpaessldalroleswnnooarlpllasapsesaorardwreylayrr
.NET аромат, 458 байт [взломан]
Это легко. Но я выложу сложнее позже.
Я думаю, что я довольно близок к криптографически безопасному ответу.
Проверено на RegexStorm .
источник
1100101001,1100111011
. Несоответствие :ThatsWhatIWantedToDo,Nice
JS-совместимый RegEx - 2447 байт [взломан]
Моя последняя попытка
Я вселяю надежду, что это длится, по крайней мере, несколько часов, прежде чем взломать. После этого я сдаюсь. :П
Как и все предыдущие представления, он разрешается мгновенно. В отличие от предыдущих представлений, это слишком долго для RegExr.
Expanded:
источник
aaaabaaacaaadaaa
. Non-матч:fdeacdbfbdcadaafdadcfdddfdbffeccbdecaaebfdfcfecbbfad
.(.)
на соответствующий символ и сортируйте по этому символу, и это станет очевидным.Аромат Python (721 байт) [взломан]
Пришло время для "Разбор проблемы v2":
Проверено на Regex101 .
источник
\ZRZTE[1LblHRKl3]?sHcKePT(7tvAE1K4r[zZTE[1LblHRKl3]?sHcKePT(7tvAE1K4rFxRzr
Спички.a
не совпадает?
заменен(?(1)Q)
?
«ыАромат Python (4842 байта) [взломан]
Благодаря @COTO за идеи и советы
Мне понравилась идея 3-SAT @ COTO что я подумал, что попытаюсь сделать из этого свое собственное регулярное выражение. Я не настолько знаком с теорией 3-SAT, поэтому я просто собираюсь молиться богам ГСЧ и надеюсь, что у меня достаточно ограничений.
Я старался, чтобы регулярное выражение было менее 5000 символов, чтобы быть справедливым - очевидно, что более длинные регулярные выражения будет невозможно взломать, но они также не будут очень забавными.
И здесь это в форме, которая немного легче читать:
Проверено на Regex101 .
источник
x
. Non-match:0011001101000000000111010001101101011000010011011010000000010001011111000100010000
aaaabaaacaaadaaa
. Несоответствие:011100110010001010111101001010010011110010011010110101010001101100101111111111
+0000
. Всего на несколько секунд медленнее ...Вкус Perl, 133 [треснувший]
Хорошо, этот должен быть труднее грубой силы:
И более длинная версия, не являющаяся частью проблемы:
Может быть проверен на Regex101 (вкус pcre).
источник
{16,20}
.aaaaa,aaaaaa,aaaaaaa,aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,aaaaaaaaaaaaaaaaaa
Несоответствие:aaaaaaaaaaaaaaaa
a
s по какой-то причине -a
между запятыми должно быть 5,6,7,85,36,91,18 с: /a
Все символы ASCII, но есть два непечатаемых символа Юникода для каждого разрыва строки, который выполняет SE..NET аромат, 141 байт [взломан]
Еще один для грабителей! Я уверен, что это будет взломано, но я надеюсь, что человек, взломавший его, узнает что-то интересное о .NET-аромате в процессе.
Протестировано на RegexStorm и RegexHero .
источник
[][][][][][][][]a][][][][][][][][
. Несоответствие:That's interesting...
Аромат Python (200127 байт) [взломан]
Просто, чтобы мы (надеюсь) увидели что-нибудь в последний день, пришло время вывести большие пушки :)
Проблема с 3-SAT и гамильтоновым путем состоит в том, что сложность выражается в размере ключа. На этот раз я выбрал что-то, что зависит от регулярного выражения, а не от ключа.
Вот оно: регулярное выражение . Вы также можете найти этот файл полезным. (Не волнуйтесь, я не спрятал ничего странного в этот раз;))
Я использовал RegexPlanet для тестирования этого - было трудно найти что-то, что не истекло бы: /. Чтобы проверить, было ли совпадение, посмотрите, отображается ли ваша строка под
findall()
.Удачи!
источник
d,mE~JZ0,_:3kBdLdgBSzJ!@MLrrAgKsf@Pl35N9bxsIf@ReVU>:YDg`d1MjL@_-
. Несоответствие:{ line|fold -w1 >filea; while line >filec; do fold -w1 <filec >fileb; diff -d --old-line-format= --new-line-format= --unchanged-line-format=%L filea fileb >filec;mv filec filea;done;cat filea;} <file1|tr -d $'\n'|head -c64;echo
Python, 145475 байт [взломан]
Спасибо Wumpus за то, что он научил меня важности проверки наших показателей :)
Та же сделка, что и в прошлом решении, но, надеюсь, на этот раз не сломанной. Необработанное регулярное выражение: http://pastebin.com/MReS2R1k
РЕДАКТИРОВАТЬ: Это не было сломано, но, очевидно, это было все еще слишком легко. По крайней мере, это не было решено "мгновенно";)
источник
1040060321170122554027333022674205250442151362365165773421664173556667110413375720720711725045122733213710556062114131057357354554245723416516004761215632214223735570625116160162051407026445600345370604702671021412723536217011007021752560474402200436670402
Match:minisat2hoursCPU
Реализация Java Pattern / Oracle (75 символов / 150 байт UTF-16) [взломано]
(Кодовое название: Bad Coffee 101)
Это
Pattern
объект сCANON_EQ
флагом, который будет использоваться сmatches()
(подразумеваемым якорем):Проверьте свой ключ здесь на ideone
Там гарантированно будет ключ. Прочтите спойлер, если хотите получить подтверждение.
При этом используются 4 ошибки:
CANON_EQ
удержание захваченного текста при неудачной попытке, класс потерянных символов и переполнение квантификатора.источник
"(?:e\u0302\u0301\\|\u00ea\u0301\\|\u1ebf\\|\u00ea\\\u0301|e\u0302\\\u0301|\u00ea\\\u0301|\u00ea\u0301\\|\u1ebf\\|e\\\u0302\u0301)\uD835\uDC00\uD835\uDC00\uD835\uDC00\uD835\uDC00\uD835\uDC00\uD835\uDC00\uD835\uDC00\uD835\uDC00\uD835\uDC00\uD835\uDC00\uD835\uDC00\uD835\uDC00\uD835\uDC00\uD835\uDC00\uD835\uDC00\uD835\uDC00\uD835\uDC00\uD835\uDC00\uD835\uDC00\uD835\uDC00"
(цитируемая форма). Non-матч :JavaRegexSoBuggy
. ideone для матча: ideone.com/DEesdkCANON_EQ
внутренне чередует предварительно составленные символы в чередования, которые весело разваливаются внутри\Q\E
; (2) длины повторения усекаются до 32 бит; (3) с сопоставителем классов персонажей происходит какая-то странная вещь, которая заставляет его пропускать чередование (не совсем выяснил, в чем именно заключалась ошибка).\1
ошибку backref . И да, в классе персонажей есть ошибка. Как ты понял все это менее чем за 2 часа?.NET аромат, 17 372 байта [взломан]
Это все еще простая версия.
Требуется больше оптимизации для работы с более длинными строками.Регулярное выражение здесь: http://pastebin.com/YPE4zyBB
Ungolfed: http://pastebin.com/PLJp0KhF
Протестировано на RegexStorm и в этом блоге, а также на RegExLib (все опции не отмечены ).
источник
Ľê¯6Aĝ4aþĀ,lŃŝĿBİŢŞĩï
(сбежал:)\u013d\xea\xaf6A\u011d4a\xfe\u0100,l\u0143\u015d\u013fB\u0130\u0162\u015e\u0129\xef
. Non-match :VeryNiceMultiplier
Вкус ECMAScript, 30 байт [взломан]
Вот довольно простой для грабителей взломать. Концептуально это не слишком сложно, но может потребовать небольшого исследования (или написания сценариев). Я не собираюсь указывать себя в списке лидеров, но если кто-то взломает его в течение 72 часов, это будет засчитано в счет его грабителя.
Протестировано на Regex101 и RegExr с использованием Chrome.
Ну, это было быстро!
источник
wqDigZ/CoOKBn8Kg4oGfwqDigZ/CoOKBn8Kg4oGfwqDigZ/CoOKBnw==
Несоответствие:aaaabaaacaaadaaa
.*
в предвкушении. Хороший улов. Должен был проверить более тщательно.Со вкусом рубина , 24 байта
источник
[]\\[]
;))soylentgreenispeople
. Соответствие доступно на rubular.com/r/TCqjcaGsU1, но не опубликовано здесь из-за того, как система комментариев обрабатывает длинные слова.PHP, 168 байт [ взломано nneonneo ]
Вот демонстрация регулярных выражений .
PS Эта игра сложная.
источник
\1?!($!?)?!(?=(?1))!?
. Несоответствие :IncrementalRegexTestingWorks
PCRE (1043 байта) [взломано]
После того, как случайно сгенерированные регулярные выражения потерпели неудачу (идеи были хорошими, но я не смог создать адекватные проблемные экземпляры), я решил создать это вручную. Я дублирую это "Целым множеством правил, чтобы удовлетворить".
И расширил:
Протестировано на Regex101 - в зависимости от вашего компьютера вам может потребоваться увеличить максимальное время выполнения.
источник
[((({.[.[](){{}{].{.(({){(.[]()....}}].{{[[....).[..]()(}..[..]([....(([{((({).](){.{}{}{}....}[[()[}}][{{[({[[[.]]}()]].{}.]{[..]{.[]]}}}())))(())[(.].{[.{[[..[()].()}{{.[...[}{.]..)]...{.])))).}}..([......{.....[.]}[...}.{[.}...}})}.))).]}}]]]}]]].)]]..}
. Non-матч:WhatANastySetOfRulesYouHave
.(?=(.*\[.*\(.*\{){5,9}.*)
, вам не нужно увеличивать максимальное время выполнения (тот же результат) - совпадения будут мгновенными..NET аромат (7563 байта) [взломан]
Вдохновленный идеей @ user23013
У нас просто не может быть достаточно NP-полных проблем! Вот расширенная версия:
Проверено на Regex Hero (время ожидания для Regex Storm для этого).
источник
01111111111111111111111011001111111111011111111111111111111101111111111
11111111111111111111011111111000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000
(удалите эти пробелы). Non-матч:KnapsackAlgorithm
. Нелегко установить Silverlight на мою машину с Ubuntu. Но это сработало на каком-то другом тестере..NET аромат (52506 байт)
Подмножество сумм, делюкс издание.
Regex здесь , расширенная версия здесь , протестировано на RegExLib и Regex Hero
источник
.NET flavour, 53 884 байта [безопасно]
Создано GnuPG! И извлекается с помощью pgpdump. Это 1536 бит, потому что в онлайн-тестере сбой более длинных версий.
Регулярное выражение здесь: http://pastebin.com/PkJnj9ME
Протестировано на RegExLib (без выбранных опций). Надеюсь, я не доставил им особых хлопот.
Вы, вероятно, хотите сначала взломать легкую версию . Это то же самое, что и этот, за исключением того, что у него более короткий ключ.
Вы, вероятно, также хотите этот номер:
Ключ
Матч:
Non-матч:
Простые числа:
Пояснение в простой версии .
Сценарий генератора (в CJam)
На входе должно быть указанное выше число.
После того, как вы закончите, решение может быть сгенерировано этой программой:
Входные данные должны быть двумя целыми числами.
источник
PHP, 395 байт [взломано взломано nneonneo ]
Лучшая головоломка, чем моя последняя запись.
Примечание. Соответствующий ключ является многострочным, каждая строка отделена символом новой строки
\n
. Восстановите немного искусства ASCII!Вот демонстрация регулярных выражений .
источник
202e272d207768616c650a2d3a3a2e2f202f205f2e27273a2e0a2d3a2c2020285f5f2e2e27602020205c0a2020205c202020202020202020202e207c0a602c2e5f5f2e2020202c5f5f2e27272f0a2020202020202d2e5f2f5f2e2d5f5f5f2e2d
(в шестнадцатеричном коде). Non-матч :IDon'tThinkIGotTheRightPicture
. Рабочая.-'
в начале.'-
. Оглядываясь назад, можно сказать, что первое намного более правдоподобно для искусства ASCII;)Аромат Perl, 97 [треснувший]
Боюсь, это будет слишком просто из-за ограничения длины ключа.
Если вы думаете, что поняли идею, стоящую за этим, попробуйте более длинную версию (не часть проблемы):
источник
aaaaaaa,a,aa,aaa,aaaaaaa
. Non-матч:aaaabaaacaaadaaa
.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,a,aa,
(удалить эти символы)aaaa,aaaaaaa,aaaaaaaa,aaaaaaaaaaaaaa,aaaaaaaaaaaaaaaaaaaaaaaaaaaa,
(удалить эти символы)aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
. Несоответствие:aaaabaaacaaadaaa
(remove these characters)
.)