Catatan : Tantangan ini sekarang sudah ditutup. Pengajuan polisi di masa mendatang tidak akan dipertimbangkan untuk jawaban yang diterima. Ini untuk memastikan bahwa tidak ada yang dapat memposting regex yang sangat sederhana di masa depan yang hanya tetap tidak terpecahkan karena tidak ada yang tertarik pada tantangan lagi.
Tantangan Polisi
Anda harus menulis regex pendek yang dikaburkan, memenuhi spesifikasi berikut:
Anda dapat memilih rasa apa pun yang dapat diuji secara online secara gratis. Ada daftar penguji online yang bagus di StackOverflow . Secara khusus, Regex101 harus baik untuk membantu Anda memulai, karena mendukung rasa PCRE, ECMAScript dan Python. Anda dapat menambah batas waktu dengan mengklik kunci pas di sudut kanan atas jika perlu. Harap sertakan tester yang Anda pilih dalam jawaban Anda.
Jika tidak tersedia penguji yang sesuai dengan selera pilihan Anda, Anda juga dapat menggunakan juru bahasa online seperti ideone dan menulis skrip kecil dalam bahasa host yang dapat digunakan orang untuk menguji kiriman Anda.
- Anda dapat menggunakan fitur apa pun dari rasa itu, yang tidak secara langsung memanggil bahasa host (seperti fitur evaluasi kode Perl).
- Demikian juga, Anda dapat menggunakan pengubah (jika selera Anda memilikinya), kecuali jika mereka menghasilkan evaluasi kode.
- Regex Anda harus menerima setidaknya satu string S dan menolak setidaknya satu string T , yang masing-masing setidaknya 16 dan panjangnya tidak lebih dari 256 karakter, dalam jumlah waktu yang wajar (tidak lebih dari satu menit). S dan T dapat berisi karakter Unicode yang bukan ASCII, asalkan ada cara untuk memasukkannya ke dalam penguji online. Setiap pasangan string seperti itu akan menjadi kunci untuk kiriman Anda.
- Regex Anda mungkin butuh waktu lama untuk input lainnya.
Inti dari tantangannya adalah membuat regex yang kuncinya sulit ditemukan. Artinya, harus sulit untuk mengetahui string mana yang tidak cocok atau string mana yang cocok (atau berpotensi bahkan keduanya jika regex membutuhkan waktu berhari-hari untuk menyelesaikan semua kecuali string kunci).
Tantangan Perampok
Semua pengguna, termasuk mereka yang telah mengirimkan regex mereka sendiri, didorong untuk "memecahkan" kiriman lainnya. Kiriman retak ketika salah satu kuncinya diposting di bagian komentar terkait.
Penting: Pastikan bahwa kedua string yang Anda poskan antara 16 dan 256 karakter inklusif, bahkan jika hampir semua string dapat digunakan digunakan untuk satu bagian dari kunci.
Jika kiriman bertahan selama 72 jam tanpa diubah atau di-crack, penulis dapat mengungkapkan kunci yang valid dengan mengeditnya menjadi spoiler-tag dalam jawabannya. Ini akan membuat jawabannya "aman", artinya tidak bisa lagi dipecahkan.
Hanya satu upaya cracking per pengajuan per pengguna yang diizinkan. Misalnya, jika saya kirim ke pengguna X: "Kunci Anda adalah 0123456789abcdef
/ fedcba9876543210
." dan saya salah, pengguna X akan menyangkal dugaan saya sebagai salah dan saya tidak lagi dapat mengirimkan tebakan tambahan untuk kiriman itu, tetapi saya masih bisa memecahkan kiriman lain (dan yang lain masih bisa memecahkan kiriman itu).
Pengajuan yang retak dihilangkan dari pertikaian (asalkan tidak "aman"). Mereka tidak boleh diedit atau dihapus. Jika seorang penulis ingin mengirimkan regex baru, ia harus melakukannya dalam jawaban yang terpisah.
Jangan merusak kiriman Anda sendiri!
Catatan: Untuk string panjang dalam komentar tanpa spasi, SE menyisipkan baris manual jeda dalam bentuk dua karakter Unicode. Jadi, jika Anda memposting kunci dalam backticks yang sangat panjang sehingga membungkus garis di antara karakter non-spasi, itu tidak akan mungkin untuk menyalin kunci langsung kembali ke tester regex. Dalam hal ini, berikan tautan permanen ke tester regex yang relevan dengan regex polisi dan kunci Anda - sebagian besar penguji menyertakan fitur ini.
Mencetak gol
Skor polisi akan menjadi ukuran regex mereka dalam byte (pola plus pengubah, pembatas potensial tidak dihitung), asalkan belum retak. Skor terendah dari pengajuan "aman" akan menang.
Skor seorang perampok adalah jumlah pengiriman yang mereka retak. Jika terjadi pengikatan, ukuran total kiriman byte yang mereka crack akan digunakan sebagai pengikat-pengikat. Di sini, jumlah byte tertinggi menang.
Seperti yang dinyatakan di atas, polisi mana pun dapat berpartisipasi sebagai perampok dan sebaliknya.
Saya akan mempertahankan papan peringkat terpisah untuk dua bagian dari tantangan.
Papan peringkat
Pembaruan terakhir: 19/10/2014, 20:33 UTC
Polisi:
Kiriman dalam huruf miring belum aman.
- nneonneo , 841 bytes
- Wumpus Q. Wumbley , 10.602 byte
- Sp3000 , 52.506 byte
- user23013 , 53.884 bytes
- nneonneo , 656.813 bytes
Perampok:
- user23013 , Cracked: 11, Total Ukuran: 733 + 30 + 2.447 + 71 + 109 + 121 + 97 + 60 + 141 + 200.127 + 7.563 = 211.499 byte
- nneonneo , Retak: 10, Ukuran Total: 4.842 + 12.371 + 150 + 3.571 + 96 + 168 + 395 + 1.043 + 458 + 17.372 = 40.466 byte
- Wumpus Q. Wumbley , Cracked: 6, Total Ukuran: 22 + 24 + 158 + 32 + 145.245 + 145.475 = 290.956 byte
- Dennis , Cracked: 2, Total Ukuran: 70 + 73 = 143 byte
- harius , Cracked: 1, Total Size: 9.998 bytes
- g.roket , Retak: 1, Ukuran Total: 721 byte
- stokastic , Retak: 1, Ukuran Total: 211 byte
- Sp3000 , Retak: 1, Ukuran Total: 133 byte
- TwiNight , Retak: 1, Ukuran Total: 39 byte
sumber
Jawaban:
.NET regex, 841 byte [Aman!]
Sekarang saya sudah mendapatkan entri yang aman, mari kita lihat seberapa kecil saya dapat membuat regex!
Prettified :
Fitur:
Terima kasih kepada Sp3000 dan user23013 untuk membuat saya masuk ke .NET regex.
Setelah 72 jam, saya mengungkapkan kunci untuk membuat pengiriman ini aman.
Cocok :
Tidak cocok :
Aren'tHashFunctionsFun?
Penjelasan:
sumber
(?<a>){53}
. Tampaknya menangkap pola kosong ke grup bernamaa
53 kali. Jadi atura=""
ulangi 52 kali? Tapi saya tidak benar-benar tahu apakah itu(?<
berarti hal yang sama dalam ide Microsoft tentang regexp. Dokumentasi mereka gagal menyebutkannya . Jika bahkan kontes regexp berakhir dengan ekstensi Microsoft tidak berdokumen berguling di atas orang unix, keberadaan saya tidak memiliki tujuan.(?<a>){53}
dorong string kosong 53 kali. Anda dapat memunculkan tumpukan menggunakan(?<-a>)
. Semoga sekarang jelas mengapa konstruk ini sangat berguna.Basic Regex, 656813 bytes [aman!]
Regex untuk mengakhiri semua regex. Satu hore terakhir menuju malam.
Diuji di bawah PCRE, Perl, Python dan banyak lainnya.
versi bzip2'd dan base64-encoded di Pastebin: http://pastebin.com/9kprSWBn (Pastebin tidak ingin versi mentah karena terlalu besar).
Untuk memastikan Anda mendapatkan regex yang tepat, Anda dapat memverifikasi bahwa hash MD5-nya adalah
atau periksa apakah itu dimulai dengan
dan diakhiri dengan
Kuncinya masih nyaman 256 byte.
Saya menguji regex ini dengan Python, tetapi perhatikan bahwa regex ini tidak menggunakan fitur khusus Python. Memang, dengan pengecualian
(?:)
(sebagai mekanisme pengelompokan), itu sebenarnya tidak menggunakan fitur khusus dari mesin regex sama sekali: hanya kelas karakter dasar, pengulangan, dan penahan. Dengan demikian, harus dapat diuji dalam sejumlah besar mesin ekspresi reguler.Yah, sebenarnya, saya masih bisa meningkatkan kesulitan, dengan asumsi seseorang tidak hanya langsung memecahkan masalah yang lebih kecil ... tapi saya bertaruh orang akan mengalami masalah dengan regex 1GB ...
Setelah 72 jam, pengiriman ini tetap tidak terpecahkan! Dengan demikian, saya sekarang mengungkapkan kunci untuk membuat kiriman aman. Ini adalah pengiriman aman pertama, setelah lebih dari 30 pengiriman dipecah berturut-turut oleh perampok gigih.
Pertandingan :
Massive Regex Problem Survives The Night!
Tidak cocok :
rae4q9N4gMXG3QkjV1lvbfN!wI4unaqJtMXG9sqt2Tb!0eonbKx9yUt3xcZlUo5ZDilQO6Wfh25vixRzgWUDdiYgw7@J8LgYINiUzEsIjc1GPV1jpXqGcbS7JETMBAqGSlFC3ZOuCJroqcBeYQtOiEHRpmCM1ZPyRQg26F5Cf!5xthgWNiK!8q0mS7093XlRo7YJTgZUXHEN!tXXhER!Kenf8jRFGaWu6AoQpj!juLyMuUO5i0V5cz7knpDX0nsL
Penjelasan regex:
sumber
ECMAScript (10602 byte)
(Catatan bahasa: Saya melihat banyak posting berlabel ruby, atau python, atau apa pun, ketika mereka benar-benar tidak menggunakan fitur khusus bahasa apa pun. Yang satu ini hanya memerlukan
(?!...)
dan(?=...)
di atas POSIX ERE dengan backreferences. Fitur-fitur itu mungkin ada di mesin regexp bahasa favorit Anda, jadi jangan berkecil hati untuk mencoba tantangan karena saya memilih untuk menggunakan tester online javascript.)Hanya sedikit bersenang-senang, tidak sesulit komputasi seperti yang lain.
Uji di sini: http://regex101.com/r/kF2oQ3/1
(jangkrik berkicau)
Tanpa peminat? Anehnya mengecewakan untuk memikirkan memposting spoiler tanpa bukti bahwa ada orang yang melihatnya cukup lama untuk memahami jenis masalah apa itu.
Saya menulis penjelasan lengkap untuk dikirim nanti, tetapi saya pikir saya akan lebih bahagia jika seseorang mengalahkan saya.
Ketika saya mengatakan itu bukan "kesulitan komputasi" ... itu adalah contoh dari masalah NP-complete, tapi bukan contoh besar .
Petunjuk: ini adalah jenis puzzle pensil dan kertas. Tapi saya akan sangat terkesan jika Anda bisa menyelesaikan ini dengan pensil dan kertas saja (setelah decoding regexp menjadi bentuk yang cocok untuk dicetak).
Waktu spoiler
Ada beberapa level spoiler di sini. Jika Anda belum menyelesaikan regexp, Anda mungkin ingin mencoba lagi setelah membaca hanya blok spoiler pertama. Kunci aktual yang cocok dengan regexp adalah setelah blok spoiler terakhir.
Lapisan kedua pembusukan:
Lapisan akhir pembusukan:
Tidak cocok:
bananabananabanana
Cocok:
Ɯ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ЏʘƜ
Bukti: http://regex101.com/r/pJ3uM9/2
sumber
Perasa Perl, 158 [retak]
Inilah upaya pertama saya:
Uji di ideone.com
sumber
j'k3j'kj'k3j'kj'kj'k3j'k3j'kj'k3j'kj'kj'k3R-k-<grc>-j'k<grc>-j'k$j'k-k-
Tidak cocok:HOLYCRAPTHATWASEVIL
(cocok tersedia di ideone.com/pXaGaX untuk bukti)[^_^]
(-.-)
(?|...)
adalah rumit, tetapi yang didokumentasikan. Lihat bagian dalamperlre
yang dimulai denganBe careful when using the branch reset pattern in combination with named captures.
Triknya adalah bahwa kelompok yang memiliki nomor yang sama tetapi nama yang berbeda adalah kelompok yang sama , sedangkan kelompok yang memiliki nama yang sama tetapi nomor yang berbeda adalah kelompok yang berbeda .Rasa JS, 9998 bytes [retak]
Diuji pada Regex101
Solusi yang saya hasilkan:
sumber
M
keŇ
. Mathematica memiliki fungsiFindHamiltonianCycle
. Kita dapat mengubah ini menjadi siklus yang melintasiŇ -> M
dengan menambahkan tepi baru dan menghubungkanŇ
danM
melewatinya. Untungnya, Mathematica menemukan siklus seperti itu secara instan. :)JS-Compatible RegEx - 3,571 bytes [retak]
Saya ... akan ... memiliki ... setidaknya ... satu ... tidak bersekongkol .... pengajuan. o \ __ / o
Menyelesaikan hampir semua string secara instan. Dapat diuji pada konsol JS apa pun.
+100 perwakilan kepada siapa saja yang memecahkan binatang ini.
sumber
ThatWasActuallyFun
. Non-pertandingan :,,;,;,,;,;;;,;,;,;;,,,,;,,,;,;;,,,,,,;;,,,,;;,;,,,;,;;;;,;;,;;,;,,;,,;,;;;,;,;,;;,,,;,;;;;,;,;;;,;,,;,,,;,,,,;,;;;;;;,,,,,;,;,;;;;;,;;;,;;,,,;;;,,;,;;,,,;,,,,,,;,;,,;;,,;;,,,;,;;,,,;,,;;,;,;,;;;;,,;,;,,;;;;;,,;,,;;,,;,,;;,,,,;,,;,,;;,;;;,,,,,;,,,,,,,,;,,,,
.PCRE - 96bytes UTF8, tanpa pembatas, tanpa bendera
[Dikalahkan] karena nneonneo adalah pria yang bijak
Tidak ada yang bisa dilihat di sini, terus ...
sumber
So just *SKIPthis one!
:; Tidak Cocok: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-pertandingan :WellThatWasTooEasy
. (Diuji dengan Perl 5.12 dan Perl 5.18 di mesin saya)JS-Compatible RegEx - 733 bytes [retak]
Mari kita coba ini untuk kedua kalinya dengan metrik terbalik: ekspresi reguler besar tetapi kunci yang relatif kecil (yang paling penting, dalam batas 256-byte).
Menyelesaikan hampir semua string secara instan. Diuji pada RegExr.
Diperluas (untuk kenyamanan):
Semoga sukses untuk semuanya. ;)
sumber
aaaabaaacaaadaaa
cacdbbcabdeababcdedaacdeecacbdabcd
.NET flavor, 60 bytes [retak]
Diuji dengan Regex Storm .
sumber
1234567890012345
. Non-pertandingan:1111222233334444
.٠߀०০੦૦୦௦౦೦൦๐໐༠၀႐០᠐᥆᧐᭐᮰᱀᱐꘠꣐꤀꩐0
Jadi ini semua dianggap digit dalam .NET ...Rasa python: 211 byte [retak]
Catatan: Jawaban ini diposting sebelum aturan berubah tentang panjang kunci maksimum
Kupikir aku akan mendapatkan bola dengan ini:
(Diuji pada RegExr )
sumber
JS-Compatible RegEx - 12,371 bytes [retak]
Setelah beberapa dorongan oleh Martin, dan melihat bahwa polisi lain dengan senang hati mengirimkan 600+ KB regex, saya memutuskan untuk mengambil risiko sekali lagi dengan ini (dan versi prettified di sini ).
Menyelesaikan hampir semua string secara instan. Dapat diuji pada konsol JS apa pun. Sayangnya ukurannya membuatnya tidak dapat diuji oleh banyak penguji regex online.
sumber
this was not NP-hard
. Tidak cocok :nerdnydeprdoypoypwwwdprelwsprwssddayaeeeysyaaaypowroplsaoprdaolasnoylaeaeadeosladnnosyoywyesorlrydwddadoeyponneeyaaapesenaalnneydaewndplredlerwaawlnrssapapaopnrdwnslowdoanlrernpwyyarpprwnrssdlaopsnnrnnnardpaessldalroleswnnooarlpllasapsesaorardwreylayrr
.NET flavor, 458 bytes [retak]
Yang ini mudah. Tapi saya akan memposting yang lebih sulit nanti.
Saya pikir saya cukup dekat dengan jawaban yang aman secara kriptografis.
Diuji pada RegexStorm .
sumber
1100101001,1100111011
. Tidak cocok :ThatsWhatIWantedToDo,Nice
JS-Compatible RegEx - 2,447 bytes [retak]
Upaya terakhir saya.
Saya mengulurkan harapan bahwa ini berlangsung setidaknya beberapa jam sebelum retak. Setelah itu, saya menyerah. : P
Seperti semua pengiriman sebelumnya, itu diselesaikan secara instan. Tidak seperti pengiriman sebelumnya, terlalu lama untuk RegExr.
Diperluas:
sumber
aaaabaaacaaadaaa
. Non-pertandingan:fdeacdbfbdcadaafdadcfdddfdbffeccbdecaaebfdfcfecbbfad
.(.)
dengan karakter yang cocok, dan urutkan berdasarkan karakter itu, dan itu akan menjadi jelas.Rasa python (721 bytes) [retak]
Saatnya untuk "Parsing Problem v2":
Diuji pada Regex101 .
sumber
\ZRZTE[1LblHRKl3]?sHcKePT(7tvAE1K4r[zZTE[1LblHRKl3]?sHcKePT(7tvAE1K4rFxRzr
cocok.a
tidak cocok?
karakter tersebut diganti dengan karakter apa pun di(?(1)Q)
?
'sRasa python (4842 bytes) [retak]
Dengan terima kasih kepada @COTO untuk ide dan saran
Saya sangat menyukai ide 3-SAT @ COTO sehingga saya pikir saya akan mencoba membuat regex sendiri berdasarkan itu. Saya tidak begitu akrab dengan teori 3-SAT, jadi saya hanya akan berdoa kepada para dewa RNG dan berharap saya memiliki batasan yang cukup.
Saya mencoba untuk menjaga regex di bawah 5000 karakter agar adil - jelas regex yang lebih panjang tidak mungkin untuk di-crack, tetapi mereka juga tidak akan menyenangkan untuk di-crack.
Dan ini dia dalam bentuk yang sedikit lebih mudah dibaca:
Diuji pada Regex101 .
sumber
x
. Tidak cocok:0011001101000000000111010001101101011000010011011010000000010001011111000100010000
aaaabaaacaaadaaa
. Tidak cocok:011100110010001010111101001010010011110010011010110101010001101100101111111111
+0000
. Hanya beberapa detik lebih lambat ...Bumbu Perl, 133 [pecah]
Oke, yang ini harusnya lebih susah untuk di paksa:
Dan versi yang lebih panjang, bukan bagian dari tantangan:
Dapat diuji pada Regex101 (rasa PCre ).
sumber
{16,20}
.aaaaa,aaaaaa,aaaaaaa,aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,aaaaaaaaaaaaaaaaaa
, Mismatch:aaaaaaaaaaaaaaaa
a
untuk beberapa alasan - harus ada 5,6,7,85,36,91,18a
antara koma: /a
adalah ASCII, tetapi ada dua karakter Unicode yang tidak dapat dicetak untuk setiap jeda baris manual SE..NET flavor, 141 byte [retak]
Satu lagi untuk para perampok! Saya yakin ini akan retak, tapi saya harap orang yang memecahkannya akan mempelajari sesuatu yang menarik tentang .NET flavor dalam prosesnya.
Diuji pada RegexStorm dan RegexHero .
sumber
[][][][][][][][]a][][][][][][][][
. Non-pertandingan:That's interesting...
Rasa python (200127 bytes) [retak]
Hanya agar kita dapat (semoga) melihat sesuatu yang bertahan sehari, saatnya untuk mengeluarkan senjata besar :)
Masalah dengan 3-SAT dan jalur Hamilton adalah kompleksitasnya dalam hal ukuran kunci. Kali ini saya memilih sesuatu yang tergantung pada regex, daripada kuncinya.
Ini dia: regex . Anda mungkin juga menemukan file ini berguna. (Jangan khawatir, aku belum menyembunyikan sesuatu yang aneh di sana saat ini;))
Saya menggunakan RegexPlanet untuk menguji yang ini - sulit menemukan sesuatu yang tidak akan habis: /. Untuk memeriksa apakah ada kecocokan, lihat apakah string Anda muncul di bawah
findall()
.Semoga berhasil!
sumber
d,mE~JZ0,_:3kBdLdgBSzJ!@MLrrAgKsf@Pl35N9bxsIf@ReVU>:YDg`d1MjL@_-
. Tidak cocok:{ 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 byte [retak]
Terima kasih kepada Wumpus karena mengajari saya pentingnya memeriksa indeks kami :)
Kesepakatan yang sama dengan solusi terakhir, hanya saja semoga tidak rusak kali ini. Regex mentah: http://pastebin.com/MReS2R1k
EDIT: Tidak rusak, tapi ternyata itu masih terlalu mudah. Setidaknya itu tidak diselesaikan "secara instan";)
sumber
1040060321170122554027333022674205250442151362365165773421664173556667110413375720720711725045122733213710556062114131057357354554245723416516004761215632214223735570625116160162051407026445600345370604702671021412723536217011007021752560474402200436670402
Pertandingan:minisat2hoursCPU
Implementasi Java Pattern / Oracle (75 karakter / 150 byte UTF-16) [retak]
(Nama kode: Kopi Buruk 101)
Ini adalah
Pattern
objek, denganCANON_EQ
flag, untuk digunakan denganmatches()
(jangkar tersirat):Uji kunci Anda di sini di ideone
Dijamin ada kunci. Baca spoiler jika Anda ingin konfirmasi.
Ini menggunakan 4 bug
CANON_EQ
:, retensi teks yang ditangkap dari upaya yang gagal, kelas karakter yang hilang, dan kelebihan quantifier.sumber
"(?: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"
(formulir dikutip). Non-pertandingan :JavaRegexSoBuggy
. ideone untuk pertandingan: ideone.com/DEesdkCANON_EQ
memperluas karakter yang sudah dikomposisikan menjadi pergantian secara internal, yang pecah di dalamnya\Q\E
; (2) panjang repetisi dipotong menjadi 32 bit; (3) ada beberapa hal aneh yang terjadi dengan pencocokan kelas karakter yang menyebabkannya melewatkan pergantian (tidak tahu persis apa bug itu sebenarnya).\1
bug backref . Dan ya, ada bug di kelas karakter. Bagaimana Anda mengetahui semua ini dalam waktu kurang dari 2 jam?.NET flavor, 17.372 byte [retak]
Ini masih versi yang mudah.
Perlu lebih banyak optimasi untuk bekerja dengan string yang lebih panjang.Regex ada di sini: http://pastebin.com/YPE4zyBB
Tidak diunggah: http://pastebin.com/PLJp0KhF
Diuji pada RegexStorm dan blog ini dan RegExLib (dengan semua opsi tidak dicentang).
sumber
Ľê¯6Aĝ4aþĀ,lŃŝĿBİŢŞĩï
(lolos:)\u013d\xea\xaf6A\u011d4a\xfe\u0100,l\u0143\u015d\u013fB\u0130\u0162\u015e\u0129\xef
. Tidak cocok :VeryNiceMultiplier
ECMAScript flavour, 30 byte [retak]
Inilah yang agak sederhana untuk dirampok para perampok. Secara konseptual tidak terlalu sulit, tetapi mungkin memerlukan sedikit riset (atau skrip). Saya tidak bermaksud untuk mendaftarkan diri di papan peringkat, tetapi jika seseorang memecahkannya dalam waktu 72 jam, ini akan dihitung untuk skor perampok mereka.
Diuji pada Regex101 dan RegExr menggunakan Chrome.
Ya, itu cepat!
sumber
wqDigZ/CoOKBn8Kg4oGfwqDigZ/CoOKBn8Kg4oGfwqDigZ/CoOKBnw==
aaaabaaacaaadaaa
.*
di lookahead. Tangkapan yang bagus. Seharusnya sudah diuji lebih teliti.Rasa Ruby , 24 byte [retak]
sumber
[]\\[]
;))soylentgreenispeople
. Cocok tersedia di rubular.com/r/TCqjcaGsU1 tidak diposting di sini karena cara sistem komentar menangani kata-kata panjang.PHP, 168 byte [dipecahkan oleh nneonneo ]
Ini adalah demo regex .
PS Game ini sulit.
sumber
\1?!($!?)?!(?=(?1))!?
. Tidak cocok :IncrementalRegexTestingWorks
PCRE (1043 bytes) [retak]
Setelah regex yang dibuat secara acak telah mengecewakan saya (ide-idenya bagus, tetapi saya tidak dapat menghasilkan contoh masalah yang memadai), saya memutuskan untuk membuat kerajinan tangan yang satu ini. Saya menyebutnya "Banyak aturan yang harus dipenuhi".
Dan diperluas:
Diuji pada Regex101 - tergantung pada komputer Anda, Anda mungkin perlu menambah waktu eksekusi maksimal.
sumber
[((({.[.[](){{}{].{.(({){(.[]()....}}].{{[[....).[..]()(}..[..]([....(([{((({).](){.{}{}{}....}[[()[}}][{{[({[[[.]]}()]].{}.]{[..]{.[]]}}}())))(())[(.].{[.{[[..[()].()}{{.[...[}{.]..)]...{.])))).}}..([......{.....[.]}[...}.{[.}...}})}.))).]}}]]]}]]].)]]..}
. Non-pertandingan:WhatANastySetOfRulesYouHave
.(?=(.*\[.*\(.*\{){5,9}.*)
, maka Anda tidak perlu menambah waktu eksekusi maksimum (hasil yang sama) - pertandingan akan instan..NET flavor (7563 bytes) [retak]
Terinspirasi oleh ide @ user23013
Kami tidak bisa memiliki cukup masalah NP-complete! Inilah versi yang diperluas:
Diuji pada Regex Hero (Regex Storm habis untuk yang satu ini).
sumber
01111111111111111111111011001111111111011111111111111111111101111111111
11111111111111111111011111111000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000
(hapus spasi itu). Non-pertandingan:KnapsackAlgorithm
. Tidak mudah untuk menginstal Silverlight di mesin Ubuntu saya. Tapi ini berhasil pada beberapa tester lainnya..NET flavor (52506 bytes)
Subset jumlah, edisi mewah.
Regex di sini , versi yang diperluas di sini , diuji pada RegExLib dan Regex Hero
sumber
.NET flavor, 53.884 bytes [aman]
Dihasilkan oleh GnuPG! Dan diekstraksi dengan pgpdump. Ini 1536 bit karena versi yang lebih lama gagal pada tester online.
Regex ada di sini: http://pastebin.com/PkJnj9ME
Diuji pada RegExLib (tanpa opsi yang dipilih). Saya harap saya tidak menyebabkan terlalu banyak masalah bagi mereka.
Anda mungkin ingin memecahkan versi yang mudah terlebih dahulu. Itu sama dengan yang ini, kecuali memiliki kunci yang jauh lebih pendek.
Anda mungkin juga menginginkan nomor ini:
Kunci
Pertandingan:
Tidak cocok:
Bilangan prima:
Penjelasan dalam versi yang mudah .
Skrip generator (dalam CJam)
Masukan harus berupa angka di atas.
Setelah Anda selesai, solusinya dapat dihasilkan oleh program ini:
Input harus berupa dua bilangan bulat.
sumber
PHP, 395 byte [dipecahkan oleh nneonneo ]
Jigsaw yang lebih baik daripada entri terakhir saya.
Catatan: Kunci yang cocok adalah multiline, dengan setiap baris dipisahkan oleh karakter baris baru
\n
. Bangun kembali beberapa seni ASCII!Ini adalah demo regex .
sumber
202e272d207768616c650a2d3a3a2e2f202f205f2e27273a2e0a2d3a2c2020285f5f2e2e27602020205c0a2020205c202020202020202020202e207c0a602c2e5f5f2e2020202c5f5f2e27272f0a2020202020202d2e5f2f5f2e2d5f5f5f2e2d
(hex-encoded) Non-pertandingan :IDon'tThinkIGotTheRightPicture
. Ruang kerja bukti: regex101.com/r/gF9pU0/1.-'
di awal.'-
. Kalau dipikir-pikir, mantan jauh lebih masuk akal untuk seni ASCII;)Perasa perl, 97 [retak]
Saya khawatir ini akan terlalu mudah karena batas panjang kunci.
Jika Anda pikir Anda telah menemukan ide di baliknya, cobalah versi yang lebih panjang (bukan bagian dari tantangan):
sumber
aaaaaaa,a,aa,aaa,aaaaaaa
. Non-pertandingan:aaaabaaacaaadaaa
.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,a,aa,
(hapus karakter ini)aaaa,aaaaaaa,aaaaaaaa,aaaaaaaaaaaaaa,aaaaaaaaaaaaaaaaaaaaaaaaaaaa,
(hapus karakter ini)aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
. Tidak cocok:aaaabaaacaaadaaa
(remove these characters)
.)