เรติน่า 65 ไบต์
^
1 N23456
+(` (.)?(\w*6)u
$1 $2
)`(.)? (\w*6)d
$1$2
.* (.).*
$1
ใช้uและdสำหรับขึ้นและลง
ลองออนไลน์!
คำอธิบาย
โปรแกรมนี้ทำงานโดยการ1N23456เรียงลำดับคำสั่งไว้เบื้องหลัง มันติดตามเกียร์ปัจจุบันโดยมีช่องว่างด้านหลัง จากนั้นจะใช้เวลาสอนหนึ่งครั้งจนกว่าจะไม่มีอีกต่อไป
^
1 N23456
เริ่มต้นด้วยการใส่1 N23456ก่อนที่จะป้อน ช่องว่างก่อนหน้าNบ่งชี้ว่าNเป็นเกียร์ปัจจุบัน
+(` (.)?(\w*6)u
$1 $2
)`(.)? (\w*6)d
$1$2
เหล่านี้เป็นสองขั้นตอนการแทนที่จัดกลุ่มเข้าด้วยกันและทำงานจนกว่าพวกเขาจะหยุดเปลี่ยนสตริง:
(.)?(\w*6)u
$1 $2
คนแรกจัดการการเปลี่ยนเกียร์ขึ้น มันจะมองหาจำนวนของเกียร์หลังจากช่องว่างตามด้วย a 6แล้วตามด้วยu( uระบุคำแนะนำในการเลื่อนเกียร์ขึ้น) หากมีตัวอักษรอยู่ก่อนหน้า 6 จะเป็นการสลับช่องว่างด้วยอักขระในทันทีหลังจากนั้นลบu, และปล่อยให้ส่วนที่เหลือของสตริงไม่เปลี่ยนแปลง เนื่องจาก6มีผลบังคับใช้ในการแข่งขันก็จะสลับพื้นที่ที่มีตัวอักษรใด ๆ 6ก่อนที่จะ 6มันจะไม่สลับกับ
(.)? (\w*6)d
$1$2
ขั้นตอนที่สองจัดการกับการเปลี่ยนเกียร์และทำงานในทำนองเดียวกัน มันดูเป็นตัวเลือกสำหรับตัวก่อนพื้นที่แล้วบางส่วนเกียร์อื่น ๆ หลังจากที่ลงท้ายด้วยตามมาด้วย6 dมันสลับช่องว่างกับตัวละครก่อนหน้านั้นลบdและออกจากส่วนที่เหลือเหมือนเดิม หากช่องว่างอยู่ที่จุดเริ่มต้นของสตริงจะไม่มีการจับคู่อักขระก่อนช่องว่างดังนั้นจึงไม่มีการสลับเกิดขึ้น
.* (.).*
$1
หลังจากการเปลี่ยนทั้งสองข้างต้นไม่สามารถทำได้อีกต่อไปการเปลี่ยนเกียร์ทั้งหมดเสร็จสมบูรณ์แล้ว เส้นจะถูกล้างทุกอย่างยกเว้นเกียร์ทันทีหลังจากที่ว่าง นี่คือเกียร์สุดท้าย