เขียนนิพจน์ปกติที่ตรงกับสตริงที่กำหนดซึ่งประกอบด้วยจำนวนเต็มสามจำนวนที่ไม่เป็นลบคั่นด้วยช่องว่างถ้าหากจำนวนเต็มสุดท้ายเป็นผลรวมของสองรายการก่อนหน้า คำตอบอาจเป็นจำนวนเต็มของระบบตัวเลขใด ๆ ด้วย radix ระหว่าง 2 ถึง 10
กรณีทดสอบ
สิ่งเหล่านี้ควรล้มเหลว:
0 1 2
10 20 1000
สิ่งเหล่านี้ควรตรงกัน:
10 20 30
28657 46368 75025
0 0 0
กฎระเบียบ
คำตอบของคุณควรประกอบด้วย regex เพียงหนึ่งเดียวโดยไม่มีรหัสเพิ่มเติมใด ๆ (ยกเว้นเป็นทางเลือกรายการของตัวดัดแปลง regex ที่จำเป็นสำหรับการแก้ปัญหาของคุณ) คุณต้องไม่ใช้คุณสมบัติของรสชาติ regex ของภาษาที่อนุญาตให้คุณเรียกใช้รหัสในภาษาโฮสติ้ง (เช่นตัวดัดแปลง e ของ Perl)
โปรดระบุรสชาติของ regex ในคำตอบของคุณ
นี่คือสนามกอล์ฟ regex ดังนั้น regex ที่สั้นที่สุดเป็นไบต์จะเป็นผู้ชนะ หากภาษาของคุณต้องการตัวคั่น (โดยปกติ /.../) เพื่อแสดงว่านิพจน์ทั่วไปไม่นับตัวคั่น หากโซลูชันของคุณต้องการตัวดัดแปลงให้เพิ่มหนึ่งไบต์ต่อตัวดัดแปลง
มอบเครดิตให้แก่Martin Enderและjayteaสำหรับกฎ regex-golfing
ฉันมีเหตุผลที่จะเชื่อว่ามันเป็นไปได้ขึ้นอยู่กับการแก้ปัญหาของมาร์ตินเอนเดอร์สำหรับการค้นหาและการเพิ่มจำนวนเต็มกับ regex
/e
ตัวดัดแปลงของ Perl 5 จะใช้กับการแทนที่เท่านั้นและไม่ใช่วิธีเดียวในการรันโค้ดภายนอก นอกจากนี้สิ่งนี้จะตัดสิทธิ์ Perl 6 ทั้งหมดเนื่องจาก regex เป็นเพียงวิธีการที่มีไวยากรณ์เพิ่มเติม (เหตุผลคือทำให้การอ่านและเขียน regexes ง่ายขึ้น) ดังนั้นคุณสมบัติทั้งหมดที่จำเป็นใน regexes แบบเก่าจึงไม่จำเป็น (หรือรวมอยู่ด้วย) เมื่อคุณใส่รหัส Perl 6 (หมายถึงมันอาจจะเป็นไปไม่ได้ที่จะทำความท้าทายนี้ถ้าคุณเพียงแค่ จำกัด รหัสเฉพาะ regex) /^(\d+)**3%' '$ <?{$0[2]==[+] $0[0,1]}>/
หรือ/^(\d+)' '(\d+)' '(\d+)$ <?{$2==$0+$1}>/
หรือ/^(\d+)' '(\d+){}" {$0+$1}"$/