Tugas Anda adalah membuat program yang menentukan apakah string yang diberikan adalah ekspresi reguler yang valid atau tidak menggunakan cuplikan kode yang bersumber dari situs di jaringan StackExchange.
Untuk keperluan tantangan ini, ekspresi dialek biasa akan menjadi set dipreteli dan sebagian besar minimal meta-karakter: ()*?|\
. Dengan demikian, Anda tidak akan dapat menggunakan parser regex bawaan.
\
digunakan untuk melarikan diri meta-karakter. Itu harus diikuti oleh meta-karakter.- Tanda kurung yang tidak dilepas harus seimbang
*
dan?
harus didahului oleh karakter non-meta, grup dengan tanda kurung, atau karakter meta yang lolos.- Semua karakter ASCII yang dapat dicetak lainnya ditambah baris baru, tab, dan ruang harus didukung sebagai karakter non-meta. Apa yang terjadi dengan string yang berisi karakter lain tidak ditentukan.
- Arti sebenarnya dari regex tidak penting untuk tantangan ini.
Contohnya
Truthy:
abc
a?
(a|)*
()
a|b*
\*
\\
\\*
a*b?(cd|e)
+
[
}
(123\))*
\|
(a(b(c|d)*e)*f)*
(|\)*)
(abc)+*
(abc)+
+abc
^ last test case is an actual newline
Falsy:
?abc
*
**
\
(
a*?
a?*
?
a)
(\)
(|\)*
\()
|*
(?:abc)
\\**
\n
Mencetak gol
Skor keseluruhan Anda adalah jumlah cuplikan yang diambil dari pertanyaan dan jawaban di sekitar StackExchange.
- Cuplikan berulang dihitung sebanyak yang digunakan.
- Ruang kosong dapat ditambahkan dan dihapus secara bebas (karena Python, Haskell, dan bahasa sensitif ruang putih lainnya) dan tidak diperhitungkan dalam jumlah cuplikan Anda.
- Pengecualiannya adalah jika kode Anda benar-benar ditulis dalam Whitespace .
- Cuplikan diperbolehkan dari situs StackExchange apa pun asalkan berasal dari pertanyaan, jawaban, dan komentar yang lebih lama (Termasuk dengan waktu edit - gunakan revisi yang lebih lama jika perlu) daripada tantangan ini. (24 Sep 2019 @ 15:30 UTC)
- Cuplikan dapat datang dari mana saja dalam badan pertanyaan, jawaban, atau komentar, apakah itu dalam blok kode yang telah diformat sebelumnya atau tidak.
- Menyambungkan snippet ke tengah yang lain menyebabkan snippet luar dihitung sebagai dua snippet
Menang skor terendah!