ความท้าทาย
ให้ regex ที่ถูกต้อง, ส่งออก regex ที่ตรงกับชุดของสตริงเดียวกัน, แต่กลับด้าน
งาน
ความท้าทายนี้ใช้มากที่สุดในการดำเนินงาน regex พื้นฐาน: ^
, $
, ?
, +
, *
, []
, ,{}
|
ไม่มีสิ่งเช่นกลุ่มจับภาพหรือสิ่งที่ซับซ้อนใด ๆ สามารถหนีอักขระพิเศษได้
ตัวอย่างอินพุต / เอาต์พุต
หมายเหตุ: จะไม่มีการป้อนข้อมูลที่ไม่ถูกต้องและมีคำตอบที่เป็นไปได้หลายประการสำหรับการป้อนที่กำหนด!
Input | Sample Output
-----------|-------------
abc | cba
tuv? | v?ut
a(b|c) | (c|b)a
1[23] | [23]1
a([bc]|cd) | (dc|[bc])a
^a[^bc]d$ | ^d[^bc]a$
x[yz]{1,2} | [yz]{1,2}x
p{2} | p{2}
q{7,} | q{7,}
\[c[de] | [de]c\[
ab[c | <output undefined>
a(?bc) | <output undefined>
a[]]bc | <output undefined>
การสาธิต
สาธิตการทำงานที่แสดงให้เห็นถึงอินพุต / เอาต์พุตที่ถูกต้อง นี่เป็นตรรกะเพิ่มเติมบางอย่างสำหรับการตรวจสอบอินพุตที่ไม่จำเป็นในคำตอบจริง พิจารณาอินพุตที่ไม่ถูกต้องว่าเป็นพฤติกรรมที่ไม่ได้กำหนด
ข้อมูลจำเพาะ
เพื่อความง่ายตัวละครพิเศษทุกตัวมีความหมายพิเศษหรือหนีไป นั่นคือไม่ได้เป็นช่วงที่ตัวละคร[[]
[
ช่วงความยาวมาจาก POSIX ERE มาตรฐาน นั่นคือ{n}
, {n,}
และ{n,m}
ได้รับการสนับสนุน ช่วงตัวละคร[]
และ[^]
ได้รับการสนับสนุน เนื่องจากกฎเหล่านี้และเนื่องจากไม่มีการป้อนข้อมูลที่ไม่ถูกต้องคุณจะต้องคัดลอกเนื้อหาเหล่านี้ไปยังเอาต์พุตโดยตรงเท่านั้น ท้ายที่สุดความโลภก็ไม่สำคัญเช่นกันมันไม่สำคัญว่าเรจิสที่กลับด้านจะพบการจับคู่ที่แตกต่างกันก่อนมันแค่ต้องหาคู่ที่ตรงกันสำหรับสตริงชุดเดียวกัน
เกณฑ์การให้คะแนน
โปรแกรมที่เล็กที่สุดในหน่วยไบต์ (ยกเว้นการโกงเช่นคำขอเครือข่าย) จะชนะ โปรแกรมสามารถใช้ IO จริงหรือเพียงแค่กำหนดฟังก์ชั่น
(^a|b)(c$|d)
เป็นกรณีทดสอบ
(a)?(b)+
↦ (b)+(a)?
หรือไม่
()
ซึ่งใช้ในตัวอย่างของคุณ
?
จะแนบไปกับ ลองพิมพ์/a(?bc)/
ลงในคอนโซลของเบราว์เซอร์