Meta Meta กอล์ฟชนิดต่าง ๆ


42

หมายเหตุ: ตามความต้องการที่เป็นที่นิยมฉันได้ผ่อนคลายกฎเล็กน้อย:

  • ขนาด regex สูงสุดเติบโตโดย 1 ไบต์ทุก 5 คำตอบ คำตอบNอาจใช้ถึง29 + ⌈N / 5⌉ไบต์
  • คะแนนของแต่ละคำตอบจะเป็น(M / (30 + N / 5)) N

ใน regex golf คุณจะได้รับสายสองชุดและถูกขอให้สร้าง regex ที่สั้นที่สุดซึ่งจับคู่กับสายทั้งหมดในชุดแรก แต่ล้มเหลวกับสายทั้งหมดในชุดที่สอง

นั่นคือสิ่งที่เรากำลังจะทำ แต่ทุกครั้งที่มีคนตอบ regex ของพวกเขาเองจะถูกเพิ่มลงในหนึ่งในสองชุดของสตริง (ตามที่พวกเขาเลือกเอง) ดังนั้นจึงมีคำสั่งที่เข้มงวดในการตอบคำถามนี้

ลองดูตัวอย่าง:

  • บอกว่าฉันเริ่มต้นด้วยabc(ซึ่งฉันจะไม่) และวางไว้ในชุดการแข่งขัน
  • จากนั้นจะมีคำตอบที่สองที่ถูกต้องaเนื่องจากตรงกับข้างต้น (และไม่มีสตริงที่ต้องล้มเหลว) พูดคำตอบนี้ไปในชุดที่ล้มเหลว
  • ตอนนี้คำตอบที่สามมีการแข่งขันแต่ล้มเหลวในabc ไปได้คำตอบที่สามจึงเป็นa bมาใส่ชุดการแข่งขันกันเถอะ
  • คำตอบที่สี่ในขณะนี้มีการแข่งขันabcและแต่ล้มเหลวในb aเราจะไม่อนุญาตให้คำตอบที่ซ้ำกันดังนั้น regex c|bที่ถูกต้องจะเป็น

สิ่งที่สำคัญคือคำตอบของคุณควรสั้นที่สุด นี่อาจเป็นเรื่องเล็กน้อยสำหรับคำตอบแรก ๆ แต่เมื่อเราได้คำตอบสองสามข้อมันก็จะยากขึ้นและยากขึ้นในการได้คู่ที่ต้องการในตัวละครน้อยที่สุด

สำหรับความท้าทายที่เกิดขึ้นจริงในขั้นต้นชุดการแข่งขันมีPPCGและชุดล้มเหลว[PPCG]และฉันได้ให้คำตอบแรกแล้ว

ตอบ

สิ่งสำคัญที่ต้องเข้าใจเกี่ยวกับความท้าทายนี้คือการที่บุคคลเพียงคนเดียวสามารถตอบในเวลาและแต่ละคำตอบขึ้นอยู่กับหนึ่งก่อนที่มันจะ

Nมีไม่ควรจะมีสองคำตอบด้วยเหมือนกัน หากมีคนสองคนตอบพร้อมกันสำหรับบางNคนผู้ตอบในภายหลัง (แม้ว่าจะมีความแตกต่างไม่กี่วินาที) ควรลบคำตอบของพวกเขาด้วยความกรุณา

หากต้องการทำให้การรันราบรื่นขึ้นลองทำตามขั้นตอนต่อไปนี้เมื่อโพสต์คำตอบของคุณ:

  • ตรวจสอบให้แน่ใจว่ามีใครบางคนได้ตรวจสอบความถูกต้องของคำตอบก่อนหน้าอย่างอิสระ (และทิ้งความคิดเห็นที่เกี่ยวข้อง)
  • ใช้ชุดทดสอบสองชุดที่พบในคำตอบก่อนหน้านี้และเขียน regex ที่ตรงกับสตริงทั้งหมดในชุดเดียวและไม่มีในชุดอื่น
  • โพสต์คำตอบของคุณในรูปแบบต่อไปนี้:

    # N. [regex flavour] - [regex size in bytes]
    
        [regex]
    
    [link to online regex tester]
    
    [notes, explanation, observations, whatever]
    
    ### The next answer has to match the following strings:
    
        [match set]
    
    ### And fail on these strings:
    
        [fail set]
    

    ที่Nเป็นจำนวนของคำตอบของคุณ โปรดคัดลอก[match set]และ[fail set]จากคำตอบก่อนหน้านี้และผนวก regex ของคุณเข้ากับหนึ่งในนั้น

    นี่เป็นสิ่งสำคัญอย่างยิ่งสำหรับการท้าทาย! ฉันได้จัดทำเครื่องมือแดชบอร์ดสำหรับความท้าทายที่จะช่วยในการทำบัญชีและมันอาศัยเทมเพลตข้างต้น (ดูด้านล่างของโพสต์)

  • ตอนนี้ผู้ใช้รายอื่นควรตรวจทานการส่งของคุณและแสดงความคิดเห็น "การยืนยันความถูกต้อง" หากคำตอบของคุณเป็นไปตามกฎทั้งหมด (ดูด้านล่าง) หากไม่เป็นเช่นนั้นพวกเขาควรแสดงความคิดเห็นเพื่อชี้ให้เห็นถึงข้อบกพร่องใด ๆ จากนั้นคุณมีเวลา 15 นาทีในการแก้ไขปัญหาเหล่านั้น หากคุณไม่ตอบคำถามของคุณจะถือว่าไม่ถูกต้องควรถูกลบออกและบุคคลอื่นอาจโพสต์คำตอบติดตามไปยังคำตอบก่อนหน้า (หากเกิดเหตุการณ์นี้คุณสามารถส่งคำตอบใหม่ได้ตลอดเวลา)

กฎระเบียบเหล่านี้อาจดูค่อนข้างเข้มงวด แต่จำเป็นต้องหลีกเลี่ยงคำตอบที่ไม่ถูกต้องในที่ใดที่หนึ่ง

กฎระเบียบ

  • ผู้ใช้สามารถส่งหนึ่งคำตอบต่อระยะเวลา 4 ชั่วโมงเท่านั้น (นี่คือการป้องกันไม่ให้ผู้ใช้ดูคำถามอย่างต่อเนื่องและตอบคำถามให้มากที่สุด)
  • ผู้ใช้ไม่สามารถส่งคำตอบสองคำติดต่อกัน (เช่นเนื่องจากฉันส่งคำตอบ 1 ฉันไม่สามารถตอบได้ 2 แต่ฉันทำได้ 3)
  • อย่าแก้ไขคำตอบที่ได้รับการยืนยันแล้ว (แม้ว่าคุณจะหาทางย่อให้สั้นลง!)
  • หากมีการค้นพบข้อผิดพลาดก่อนหน้านี้ในห่วงโซ่ (เช่นหลังจากคำตอบติดตามได้รับการโพสต์) คำตอบที่กระทำผิดควรจะถูกลบและจะถูกลบออกจากชุดของสตริงที่ส่งใหม่ควรล้มเหลว อย่างไรก็ตามคำตอบทั้งหมดที่โพสต์ตั้งแต่ไม่ควรเปลี่ยนเพื่อสะท้อน
  • ระบุรสชาติหนึ่งอย่างชัดเจนว่า regex ของคุณใช้ได้คุณสามารถเลือกรสชาติที่สามารถทดสอบออนไลน์ได้อย่างอิสระ มีรายการที่ดีของการทดสอบออนไลน์เป็นมากกว่าใน StackOverflow โดยเฉพาะอย่างยิ่งRegex101และRegexPlanetควรมีประโยชน์เนื่องจากมันรองรับรสชาติที่หลากหลาย โปรดใส่ลิงค์ไปยังผู้ทดสอบที่คุณเลือกในคำตอบของคุณ ด้วยการเปิดตัวโมเดอเรเตอร์global และmultiline ในเครื่องทดสอบคุณสามารถทดสอบสตริงทั้งหมดในครั้งเดียวหนึ่งตัวในแต่ละบรรทัด (โมดิฟายเออร์เหล่านี้จะไม่ถูกนับรวมกับขนาด regex ของคุณเพราะมันไม่จำเป็นสำหรับสตริงแต่ละตัว)
  • regex ของคุณต้องไม่ว่างเปล่า
  • regex ของคุณสำหรับคำตอบNต้องไม่เกิน29 + ⌈N / 5⌉ไบต์ เช่นคำตอบที่ 1 ถึง 5 อาจใช้งานได้สูงสุด 30 ไบต์ (รวมอยู่ด้วย) คำตอบ 6 ถึง 10 อาจใช้งานได้ถึง 31 ไบต์ ... คำตอบ 31 ถึง 35 อาจใช้งานได้สูงสุด 36 ไบต์ ตรวจสอบหน้าแดชบอร์ดเพื่อดูว่ามีอักขระกี่ตัวที่อาจใช้คำตอบถัดไป
  • regex ของคุณจะต้องไม่เหมือนกับสตริงใด ๆ ในชุดทดสอบอย่างใดอย่างหนึ่ง
  • ห้ามรวมตัวคั่นในการส่งหรือจำนวนไบต์แม้ว่าภาษาโฮสต์ที่เกี่ยวข้องจะใช้ หาก regex ของคุณใช้โมเดอเรเตอร์ให้เพิ่มหนึ่งไบต์ต่อตัวดัดแปลงในขนาด Regex เช่น/foo/iจะเป็น 4 ไบต์

เกณฑ์การให้คะแนน

คะแนนคำตอบของแต่ละคำนวนถูกคำนวณเป็น(M / (30 + N / 5)) Nโดยที่Mคือขนาดของ regex ในหน่วยไบต์และNเป็นจำนวน คะแนนของผู้ใช้แต่ละคนเป็นผลผลิตของคำตอบทั้งหมด ผู้ใช้ที่มีคะแนนรวมต่ำสุดชนะ ในกรณีที่ไม่เสมอกันผู้ใช้ที่มีการส่งล่าสุดจะชนะ ฉันจะยอมรับคำตอบล่าสุดของผู้ใช้

หากคุณต้องการคะแนนรวมคุณสามารถคำนวณคะแนนของแต่ละคำตอบเป็นN * (บันทึก (M) - บันทึก (30))และรวมคะแนนเหล่านั้นเหนือคำตอบทั้งหมด นั่นจะทำให้คำสั่งกระดานผู้นำเหมือนกัน

ไม่มีความจำเป็นที่จะรวมคะแนนคำตอบในคำตอบคือเพียงแค่รายงานM แดชบอร์ดความท้าทายที่ด้านล่างของคำถามจะคำนวณคะแนนและในกรณีที่คะแนนสองคะแนนใกล้มากฉันจะตรวจสอบผลลัพธ์อีกครั้งโดยใช้ประเภทที่มีความแม่นยำตามอำเภอใจ

โปรดทราบว่าคะแนนของแต่ละคำตอบนั้นน้อยกว่า 1 เพื่อให้คุณสามารถปรับปรุงคะแนนโดยรวมของคุณโดยการให้คำตอบใหม่ อย่างไรก็ตามยิ่งการส่งผลงานของคุณสั้นลงเท่าไหร่คุณก็ยิ่งมีคะแนนลดน้อยลงเท่านั้น นอกจากนี้คำตอบในภายหลังจะได้คะแนนต่ำกว่าแม้ว่าจะนานขึ้นเนื่องจากเลขชี้กำลังที่เพิ่มขึ้น

แผงควบคุม

ผมเคยเขียนเป็นเครื่องมือแดชบอร์ดเล็ก ๆ น้อย ๆ โดยใช้กองเกร็ดเล็กเกร็ดน้อยขึ้นอยู่กับการทำงานของเครื่องมือเพิ่มประสิทธิภาพมากกว่าที่นี่ ฉันหวังว่าสิ่งนี้จะช่วยให้เราได้รับคำสั่งในความท้าทายที่ขึ้นอยู่กับคำตอบเหล่านี้

สิ่งนี้จะแสดงสถานะปัจจุบันของการท้าทาย - โดยเฉพาะหากมีคำตอบที่ขัดแย้งกันหากคำตอบต้องได้รับการยืนยันหรือหากคำตอบถัดไปสามารถโพสต์ได้

นอกจากนี้ยังสร้างรายการคำตอบทั้งหมดด้วยคะแนนรวมถึงกระดานผู้นำของผู้ใช้ทั้งหมด โปรดยึดรูปแบบความท้าทายด้านบนเพื่อให้แดชบอร์ดสามารถอ่านสตริงที่เกี่ยวข้องจากคำตอบของคุณ ไม่เช่นนั้นคุณอาจไม่ได้รวมอยู่ในกระดานแต้มนำ

โปรดแจ้งให้เราทราบ ( นึกคิดในการแชท ) หากคุณพบข้อบกพร่องใด ๆ หรือมีความคิดบางอย่างเกี่ยวกับวิธีการปรับปรุงประโยชน์ของเครื่องมือ


กฎกลายเป็นค่อนข้างเข้มงวดกว่าที่ฉันตั้งใจไว้ หลังจากการสนทนาในการแชทฉันกำลังพิจารณาที่จะผ่อนคลายกฎเล็กน้อยหลังจากเงินรางวัลหมดลง ฉันจะโพสต์ 3 ความคิดเห็นสำหรับตัวเลือกที่ฉันสามารถคิดได้ด้านล่าง โปรดระบุความต้องการของคุณโดยการโหวตความคิดเห็น
Martin Ender

2
กฎคือกฎ อย่าเปลี่ยนพวกเขา มันอาจเป็นความอัปยศที่เป็นไปไม่ได้ที่จะโพสต์คำตอบอื่น ๆ อีกมากมาย
Martin Ender

2
อนุญาตให้มีไบต์เพิ่มเติมทุก10คำตอบ ตามลําดับเปลี่ยนคะแนนคำตอบ(M / (30 + N / 10)) ^ N สิ่งนี้จะถูกนำไปใช้ย้อนหลังดังนั้นคำตอบต่อไปอาจใช้ได้ถึง 32 ไบต์ การเปลี่ยนแปลงในการให้คะแนนจะไม่ส่งผลกระทบต่อสองอันดับแรกบนกระดานแต้มนำ แต่ผู้ใช้รายอื่นจะถูกสับเปลี่ยนบ้าง
Martin Ender

8
อนุญาตให้มีไบต์เพิ่มเติมทุก5คำตอบ ตามลําดับเปลี่ยนคะแนนคำตอบ(M / (30 + N / 5)) ^ N สิ่งนี้จะถูกนำไปใช้ย้อนหลังดังนั้นคำตอบต่อไปสามารถใช้งานได้ถึง 35 ไบต์ การเปลี่ยนแปลงในการให้คะแนนจะไม่ส่งผลกระทบต่อสองอันดับแรกบนกระดานแต้มนำ แต่ผู้ใช้รายอื่นจะถูกสับเปลี่ยนบ้าง
Martin Ender

4
คุณคนแปลกและบิด ทำไมคุณต้องทำสิ่งนี้กับตัวเอง? (มันสนุกที่จะอ่าน: P)
Joe

คำตอบ:


5

42. รสงูหลาม - 38

\?[^w$]*\$$|^P|\w.\)|w.?\+|w\^|[^?P]P$

ทดสอบบน Regex101

การขาดข่าวสารเกี่ยวกับเอนโทรปีในสองสามคำตอบสุดท้ายคือฉัน ... (น่าจะทำได้เร็วกว่านี้)

คำตอบถัดไปต้องตรงกับสตริงต่อไปนี้:

PPCG
^P
^[P^]P
[^?][PG]$
(?<!\\..)(?!]).$
^[\w^]*$|!|]P|G]\$$
!|[^?]P(CG|G..)?$
[^])]\$|^\^?P|P.\].$
([.$?]|G\])\$$|^\^?P|\]P$
([P.$?]\$|[]^]P|G\]\$|CG)$
!|((G.|P|\.)\$|[^?]P|CG)$
^[(!P]|G..$|]..\||[^?]P$
^.{3,23}[.-~]..\$$|[^P?][PG]$
^..(.[!G)(3w^]|.{7}$|$)|\$\?
\.\)|P[.$?]|w\^|^[^|C\\]*$|^P
^..(.[!)3G^w]|$)|\^.{7}$|G\)
\?[^w$]*\$$|[]^C]\w+$|w\^|\|..\)
\w.\)|\?[^-$]*\$$|[]^C]\w$|w[+^]
[]^C]\w$|\w.\)|-\$|w[+^]|\?[^w$]*\$$

และล้มเหลวกับสตริงเหล่านี้:

[PPCG]
^[P\^]
[^\]]$
^\^?P
[^?][PG]$|<|PG
^[^\\|]*(\\\\)+[^\\|]*[^\]]$
^(.{,4}|.{9}|.{16,19}|.{5}P)$
^[^?]*[PG]$|[?$].*\$$
^[^[]P|]P|(G]|[.])\$$
\..$|!|\|G|^[\^P]P|P\^|G.\$$
...\^.P|^!|G]\$$|w|<!|^\^?P
([^\\}<]{3}|][^]]|^).?[$PG]$
^(..[^^].{4,22}\$|[^?]+\w)$|2
^(..[^^].{4,22}\$|[^?]+\w)$|~
^..(.[!()3G^w]|.{7}$|$)|G\\
[[?C(].[-!)|w]|^P|^[^C|\\]*$
[?[CP(].[-<)|w]|^P|^[^C|\\]*$
^..(.{7}$|.[3Gw!^)]|$)|G.?.?\)
^...[3w!G)]|^[^\\C|]*$|G.?.?\)
^[^C\\|]+$|G.\)|\.\)|w\^|^P|\...?]
^P|!.3|w\^|^[^C\\|]+$|\.[)$-](?!.!)
\?[^$w]*\$$|[]C^]\w$|w.]|\w.\)
\$..\\|\?[^w$]*\$$|w\^|[]^C]\w$
[]^C]\w$|\w.\)|w[[+^]|\?[^w$]*\$$
\?[^w$]*\$$|^P|\w.\)|w.?\+|w\^|[^?P]P$

ตรวจสอบความถูกต้องแล้ว
Martin Ender

โปรแกรมของฉันพยายามค้นหาคำตอบที่มีความยาวน้อยกว่า 45 อักขระ ...
Vi

@Vi ดีฉันสามารถพูดได้ว่าเป็นทางออกที่ 38 ไม่อยู่อย่างน้อย แต่แน่นอนมันจะเป็นที่น่าสนใจถ้ามีคนที่จะได้รับการบริหารจัดการที่ต่ำกว่า :)
SP3000

11

28. รสชาติของ Python - 29

\.\)|P[.$?]|w\^|^[^|C\\]*$|^P

ทดสอบบน Regex101

เล่น ๆ รอบ ๆ เสร็จแล้ว - # 4 ในชุดพาสอาจเป็นความเจ็บปวดที่ใหญ่ที่สุดเนื่องจากเป็นสตริงย่อยของ regex ในชุดที่ล้มเหลวและยังแชร์คำต่อท้ายกับชุด regex อื่นในชุดที่ล้มเหลว

คำตอบถัดไปต้องตรงกับสตริงต่อไปนี้:

PPCG
^P
^[P^]P
[^?][PG]$
(?<!\\..)(?!]).$
^[\w^]*$|!|]P|G]\$$
!|[^?]P(CG|G..)?$
[^])]\$|^\^?P|P.\].$
([.$?]|G\])\$$|^\^?P|\]P$
([P.$?]\$|[]^]P|G\]\$|CG)$
!|((G.|P|\.)\$|[^?]P|CG)$
^[(!P]|G..$|]..\||[^?]P$
^.{3,23}[.-~]..\$$|[^P?][PG]$
^..(.[!G)(3w^]|.{7}$|$)|\$\?
\.\)|P[.$?]|w\^|^[^|C\\]*$|^P

และล้มเหลวกับสตริงเหล่านี้:

[PPCG]
^[P\^]
[^\]]$
^\^?P
[^?][PG]$|<|PG
^[^\\|]*(\\\\)+[^\\|]*[^\]]$
^(.{,4}|.{9}|.{16,19}|.{5}P)$
^[^?]*[PG]$|[?$].*\$$
^[^[]P|]P|(G]|[.])\$$
\..$|!|\|G|^[\^P]P|P\^|G.\$$
...\^.P|^!|G]\$$|w|<!|^\^?P
([^\\}<]{3}|][^]]|^).?[$PG]$
^(..[^^].{4,22}\$|[^?]+\w)$|2
^(..[^^].{4,22}\$|[^?]+\w)$|~
^..(.[!()3G^w]|.{7}$|$)|G\\

ตรวจสอบความถูกต้องแล้ว
Martin Ender

9

24 - รสชาติของ Python - 29

^(..[^^].{4,22}\$|[^?]+\w)$|2

ทดสอบที่นี่

คำตอบถัดไปต้องตรงกับสตริงต่อไปนี้:

PPCG
^P
^[P^]P
[^?][PG]$
(?<!\\..)(?!]).$
^[\w^]*$|!|]P|G]\$$
!|[^?]P(CG|G..)?$
[^])]\$|^\^?P|P.\].$
([.$?]|G\])\$$|^\^?P|\]P$
([P.$?]\$|[]^]P|G\]\$|CG)$
!|((G.|P|\.)\$|[^?]P|CG)$
^[(!P]|G..$|]..\||[^?]P$
^.{3,23}[.-~]..\$$|[^P?][PG]$

และล้มเหลวกับสตริงเหล่านี้:

[PPCG]
^[P\^]
[^\]]$
^\^?P
[^?][PG]$|<|PG
^[^\\|]*(\\\\)+[^\\|]*[^\]]$
^(.{,4}|.{9}|.{16,19}|.{5}P)$
^[^?]*[PG]$|[?$].*\$$
^[^[]P|]P|(G]|[.])\$$
\..$|!|\|G|^[\^P]P|P\^|G.\$$
...\^.P|^!|G]\$$|w|<!|^\^?P
([^\\}<]{3}|][^]]|^).?[$PG]$
^(..[^^].{4,22}\$|[^?]+\w)$|2

1
ตรวจสอบความถูกต้องแล้ว
feersum

8

10. รสงูหลาม - 19

^[\w^]*$|!|]P|G]\$$

การทดสอบบนRegex101

คำตอบถัดไปต้องตรงกับสตริงต่อไปนี้:

PPCG
^P
^[P^]P
[^?][PG]$
(?<!\\..)(?!]).$
^[\w^]*$|!|]P|G]\$$

และล้มเหลวกับสตริงเหล่านี้:

[PPCG]
^[P\^]
[^\]]$
^\^?P
[^?][PG]$|<|PG
^[^\\|]*(\\\\)*[^\\|]*[^\]]$

ตรวจสอบความถูกต้องแล้ว
FryAmTheEggman

8

8. ECMAScript รส - 14 ไบต์

[^?][PG]$|<|PG

การสาธิต

คำตอบถัดไปต้องตรงกับสตริงต่อไปนี้:

PPCG
^P
^[P^]P
[^?][PG]$
(?<!\\..)(?!]).$

และล้มเหลวกับสตริงเหล่านี้:

[PPCG]
^[P\^]
[^\]]$
^\^?P
[^?][PG]$|<|PG

ตรวจสอบความถูกต้องแล้ว
FryAmTheEggman

แก้ไขลิงค์สาธิต
Martin Ender

@FryAmTheEggman สคริปต์อ่านความคิดเห็น แต่ค้นหา "การตรวจสอบความถูกต้อง" เป็นสตริงย่อยเท่านั้น (ไม่สนใจขนาดตัวพิมพ์)
Martin Ender

@ MartinBüttnerขอบคุณที่รู้
FryAmTheEggman

3
+1 สำหรับการท้าทายนี้เพียงครั้ง
Sp3000


7

9. รสงูหลาม - 28

^[^\\|]*(\\\\)*[^\\|]*[^\]]$

ทดสอบบนRegex101

คำตอบถัดไปต้องตรงกับสตริงต่อไปนี้:

PPCG
^P
^[P^]P
[^?][PG]$
(?<!\\..)(?!]).$

และล้มเหลวกับสตริงเหล่านี้:

[PPCG]
^[P\^]
[^\]]$
^\^?P
[^?][PG]$|<|PG
^[^\\|]*(\\\\)*[^\\|]*[^\]]$

ฉันก็พบว่ามันไม่ได้ทำงานเมื่อนาทีที่แล้ว มันต้องมีแบ็กสแลชสองตัวติดต่อกันดังนั้นฉันไม่คิดว่าการตั้งค่าสถานะสามารถบันทึกได้
feersum

อ๊ะ .... ควรเป็น * แทนที่จะเป็น + ฉันแก้ไขคำตอบของฉัน
ndc5057

ความถูกต้อง verfied
FryAmTheEggman

7

23. รสชาติ PCRE - 28

([^\\}<]{3}|][^]]|^).?[$PG]$

ทดสอบบน Regex101

คำตอบถัดไปต้องตรงกับสตริงต่อไปนี้:

PPCG
^P
^[P^]P
[^?][PG]$
(?<!\\..)(?!]).$
^[\w^]*$|!|]P|G]\$$
!|[^?]P(CG|G..)?$
[^])]\$|^\^?P|P.\].$
([.$?]|G\])\$$|^\^?P|\]P$
([P.$?]\$|[]^]P|G\]\$|CG)$
!|((G.|P|\.)\$|[^?]P|CG)$
^[(!P]|G..$|]..\||[^?]P$
^.{3,23}[.-~]..\$$|[^P?][PG]$

และล้มเหลวกับสตริงเหล่านี้:

[PPCG]
^[P\^]
[^\]]$
^\^?P
[^?][PG]$|<|PG
^[^\\|]*(\\\\)+[^\\|]*[^\]]$
^(.{,4}|.{9}|.{16,19}|.{5}P)$
^[^?]*[PG]$|[?$].*\$$
^[^[]P|]P|(G]|[.])\$$
\..$|!|\|G|^[\^P]P|P\^|G.\$$
...\^.P|^!|G]\$$|w|<!|^\^?P
([^\\}<]{3}|][^]]|^).?[$PG]$

อะไร[^]ทำอย่างไร
feersum

@feersum ในรสชาติส่วนใหญ่]เป็นองค์ประกอบแรกของคลาสตัวละคร (หลังจากการปฏิเสธตัวเลือก) เป็นเพียง]ภายในชั้นเรียนของตัวละครและไม่ปิด ดังนั้น[^]]การแข่งขันอะไร ]แต่ ข้อยกเว้นที่น่าสังเกตคือ ECMAScript ซึ่งอนุญาตให้ใช้คลาสอักขระว่าง ในกรณี[]นั้นไม่ตรงกับสิ่งใดมันทำหน้าที่เหมือน(?!)และ[^]จับคู่อักขระใด ๆ ซึ่งสะดวกเพราะ ECMAScript ไม่มีsตัวดัดแปลงและ[\s\S]เป็นความเจ็บปวดในการพิมพ์การอ่าน
Martin Ender

ตรวจสอบความถูกต้องแล้ว
Martin Ender

7

11. Python - 29

^(.{,4}|.{9}|.{16,19}|.{5}P)$

►ทดสอบที่ RegexPlanet

คำตอบที่ไม่ถูกต้องเกือบทั้งหมดมีความยาวแตกต่างจากคำตอบที่ถูกต้องทั้งหมด regex นี้ใช้ประโยชน์จากสิ่งนั้น

คำตอบถัดไปต้องตรงกับสตริงต่อไปนี้:

PPCG
^P
^[P^]P
[^?][PG]$
(?<!\\..)(?!]).$
^[\w^]*$|!|]P|G]\$$

และล้มเหลวกับสตริงเหล่านี้:

[PPCG]
^[P\^]
[^\]]$
^\^?P
[^?][PG]$|<|PG
^[^\\|]*(\\\\)+[^\\|]*[^\]]$
^(.{,4}|.{9}|.{16,19}|.{5}P)$

ตรวจสอบความถูกต้องแล้ว
feersum

7

29. รสชาติ PCRE - 28

^..(.[!)3G^w]|$)|\^.{7}$|G\)

ทดสอบบน Regex101

คำตอบนี้ยังใช้งานได้ ...

คำตอบถัดไปต้องตรงกับสตริงต่อไปนี้:

PPCG
^P
^[P^]P
[^?][PG]$
(?<!\\..)(?!]).$
^[\w^]*$|!|]P|G]\$$
!|[^?]P(CG|G..)?$
[^])]\$|^\^?P|P.\].$
([.$?]|G\])\$$|^\^?P|\]P$
([P.$?]\$|[]^]P|G\]\$|CG)$
!|((G.|P|\.)\$|[^?]P|CG)$
^[(!P]|G..$|]..\||[^?]P$
^.{3,23}[.-~]..\$$|[^P?][PG]$
^..(.[!G)(3w^]|.{7}$|$)|\$\?
\.\)|P[.$?]|w\^|^[^|C\\]*$|^P
^..(.[!)3G^w]|$)|\^.{7}$|G\)

และล้มเหลวกับสตริงเหล่านี้:

[PPCG]
^[P\^]
[^\]]$
^\^?P
[^?][PG]$|<|PG
^[^\\|]*(\\\\)+[^\\|]*[^\]]$
^(.{,4}|.{9}|.{16,19}|.{5}P)$
^[^?]*[PG]$|[?$].*\$$
^[^[]P|]P|(G]|[.])\$$
\..$|!|\|G|^[\^P]P|P\^|G.\$$
...\^.P|^!|G]\$$|w|<!|^\^?P
([^\\}<]{3}|][^]]|^).?[$PG]$
^(..[^^].{4,22}\$|[^?]+\w)$|2
^(..[^^].{4,22}\$|[^?]+\w)$|~
^..(.[!()3G^w]|.{7}$|$)|G\\

ตรวจสอบความถูกต้องแล้ว
Martin Ender

1
ดี! นอกจาก reshuffling นั่นคือสิ่งที่ฉันมี
Sp3000

ฉันพยายามคำนวณสิ่งนี้โดยใช้อัลกอริธึมทางพันธุกรรม แต่มันสร้างได้เพียง 30 ตัวอักษร regex ... ตอนนี้เรียกใช้มันเพื่อรับคำตอบต่อไป ผลลัพธ์ปัจจุบัน - 32 อักขระ
วิ

@Vi อัลกอริทึมทางพันธุกรรมใช่แล้วคุณมีไอเดียที่น่าสนใจ: P
Sp3000

@ Sp3000 ตอนนี้ 30 ตัวอักษร ... แต่มีผู้ตอบอีกคนมาถึงแล้วดังนั้นต้องเริ่มต้นใหม่
วิ

6

31. รสชาติ Perl - 29

[?[CP(].[-<)|w]|^P|^[^C|\\]*$

ผมไม่ทราบว่าวิธีการทำงานมันถูกผลิตโดยของฉันโจมตีครั้งแรกใน algoritms มีเอาต์พุตโปรแกรมที่กล่าวถึงคำตอบ

คำตอบต่อไปต้องตรงกัน:

PPCG
^P
^[P^]P
[^?][PG]$
(?<!\\..)(?!]).$
^[\w^]*$|!|]P|G]\$$
!|[^?]P(CG|G..)?$
[^])]\$|^\^?P|P.\].$
([.$?]|G\])\$$|^\^?P|\]P$
([P.$?]\$|[]^]P|G\]\$|CG)$
!|((G.|P|\.)\$|[^?]P|CG)$
^[(!P]|G..$|]..\||[^?]P$
^.{3,23}[.-~]..\$$|[^P?][PG]$
^..(.[!G)(3w^]|.{7}$|$)|\$\?
\.\)|P[.$?]|w\^|^[^|C\\]*$|^P
^..(.[!)3G^w]|$)|\^.{7}$|G\)

และล้มเหลว:

[PPCG]
^[P\^]
[^\]]$
^\^?P
[^?][PG]$|<|PG
^[^\\|]*(\\\\)+[^\\|]*[^\]]$
^(.{,4}|.{9}|.{16,19}|.{5}P)$
^[^?]*[PG]$|[?$].*\$$
^[^[]P|]P|(G]|[.])\$$
\..$|!|\|G|^[\^P]P|P\^|G.\$$
...\^.P|^!|G]\$$|w|<!|^\^?P
([^\\}<]{3}|][^]]|^).?[$PG]$
^(..[^^].{4,22}\$|[^?]+\w)$|2
^(..[^^].{4,22}\$|[^?]+\w)$|~
^..(.[!()3G^w]|.{7}$|$)|G\\
[[?C(].[-!)|w]|^P|^[^C|\\]*$
[?[CP(].[-<)|w]|^P|^[^C|\\]*$

ตรวจสอบความถูกต้องแล้ว
Martin Ender

อาฮาฮาดี - คุณใช้คำตอบก่อนหน้านี้เป็นเมล็ดสำหรับประชากรหรือไม่หรือเพียงแค่ดูเหมือนว่าก่อนหน้านี้?
Sp3000

สตริงที่ผ่านและล้มเหลวถูกใช้เป็นแบบเอกสารสำเร็จรูปเริ่มต้น พวกเขา hovewer ถูกแบนหลังจากเวลาผ่านไปเนื่องจากเป็นค่าต่ำสุดในท้องถิ่น คุณสามารถดูว่ามันจะไปในบันทึกของโปรแกรมได้อย่างไร: ตัวเลขในวงเล็บหลัง "metric =" คือการวัดความเร็วที่เรากำลังก้าวไปข้างหน้า มันน้อยไปอีกนานเราห้ามคำตอบและตั้งค่าปัจจุบัน
วิ

(ในขณะเดียวกันผู้สมัคร 31 ตัวสำหรับคำตอบต่อไปพบแล้ว)
Vi

โอ้ขีด จำกัด เพิ่มขึ้น? ไม่ใช่29เหรอ ด้วยวิธีนี้จะไม่จบเร็ว ๆ นี้ ... ฉันถึงแม้ว่าความท้าทายหลักคือการค้นหาสุดท้าย regex ที่สุด
วิ

6

32. PCRE - 30 ไบต์

^..(.{7}$|.[3Gw!^)]|$)|G.?.?\)

ทดสอบบนRegex101

คำตอบถัดไปต้องตรงกับสตริงต่อไปนี้ :

PPCG
^P
^[P^]P
[^?][PG]$
(?<!\\..)(?!]).$
^[\w^]*$|!|]P|G]\$$
!|[^?]P(CG|G..)?$
[^])]\$|^\^?P|P.\].$
([.$?]|G\])\$$|^\^?P|\]P$
([P.$?]\$|[]^]P|G\]\$|CG)$
!|((G.|P|\.)\$|[^?]P|CG)$
^[(!P]|G..$|]..\||[^?]P$
^.{3,23}[.-~]..\$$|[^P?][PG]$
^..(.[!G)(3w^]|.{7}$|$)|\$\?
\.\)|P[.$?]|w\^|^[^|C\\]*$|^P
^..(.[!)3G^w]|$)|\^.{7}$|G\)

และล้มเหลวกับสตริงเหล่านี้ :

[PPCG]
^[P\^]
[^\]]$
^\^?P
[^?][PG]$|<|PG
^[^\\|]*(\\\\)+[^\\|]*[^\]]$
^(.{,4}|.{9}|.{16,19}|.{5}P)$
^[^?]*[PG]$|[?$].*\$$
^[^[]P|]P|(G]|[.])\$$
\..$|!|\|G|^[\^P]P|P\^|G.\$$
...\^.P|^!|G]\$$|w|<!|^\^?P
([^\\}<]{3}|][^]]|^).?[$PG]$
^(..[^^].{4,22}\$|[^?]+\w)$|2
^(..[^^].{4,22}\$|[^?]+\w)$|~
^..(.[!()3G^w]|.{7}$|$)|G\\
[[?C(].[-!)|w]|^P|^[^C|\\]*$
[?[CP(].[-<)|w]|^P|^[^C|\\]*$
^..(.{7}$|.[3Gw!^)]|$)|G.?.?\)

1
ตรวจสอบความถูกต้องแล้ว
Martin Ender

เหตุใดจึงถูกเพิ่มในรายการ "ล้มเหลว" มันล้มเหลวในตัวของมันเองแล้วดังนั้นสามารถทำหน้าที่เป็นคำตอบต่อไปโดยไม่มีการดัดแปลง ฉันคิดว่าสำหรับแต่ละคำตอบไม่มีทางเลือกว่าจะผนวกรายการใด
วิ

3
@Vi ฉันเดาว่า hwnd รู้สึกดีวันนี้
Sp3000

ฉันจะทำให้มันยากขึ้นเมื่อมันดำเนินต่อไป
hwnd

5

1. ECMAScript รส - 2 ไบต์

^P

ทดสอบบน Regex101

ชุดจับคู่ครั้งแรกและชุดที่ล้มเหลวPPCG [PPCG]ดังนั้น regex นี้เป็นเพียงการทดสอบว่าสตริงเริ่มต้นPด้วย

คำตอบถัดไปต้องตรงกับสตริงต่อไปนี้:

PPCG
^P

และล้มเหลวกับสตริงเหล่านี้:

[PPCG]

3
ตรวจสอบความถูกต้องแล้ว
Beta Decay

5

3. ECMAScript รส - 6 ไบต์

[^\]]$

ทดสอบที่นี่

คำตอบถัดไปต้องตรงกับสตริงต่อไปนี้:

PPCG
^P

และล้มเหลวในสตริงเหล่านี้:

[PPCG]
^[P\^]
[^\]]$

1
ตรวจสอบความถูกต้องแล้ว
Beta Decay

5

7. รสงูหลาม - 16

(?<!\\..)(?!]).$

ทดสอบบนRegex101

ต้องเพิ่ม \ ลงในรายการการแข่งขัน :)

คำตอบถัดไปต้องตรงกับสตริงต่อไปนี้:

PPCG
^P
^[P^]P
[^?][PG]$
(?<!\\..)(?!]).$

และล้มเหลวกับสตริงเหล่านี้:

[PPCG]
^[P\^]
[^\]]$
^\^?P

ตรวจสอบความถูกต้องแล้ว
NinjaBearMonkey

นี่…นี่มันช่างคดเคี้ยว
wchargin

@WChargin ขอบคุณ :) คุณควรตรวจสอบบางส่วนของผู้ใช้ 23013 หรือคำตอบ n̴̖̋h̷͉̃a̷̭̿h̸̡̅ẗ̵̨́d̷̰̀ĥ̷̳; บางอันค่อนข้าง 'คดเคี้ยว';)
FryAmTheEggman

5

12. ECMAScript รส - 17

!|[^?]P(CG|G..)?$

ทดสอบได้ที่นี่

คำตอบถัดไปต้องตรงกับสตริงต่อไปนี้:

PPCG
^P
^[P^]P
[^?][PG]$
(?<!\\..)(?!]).$
^[\w^]*$|!|]P|G]\$$
!|[^?]P(CG|G..)?$

และล้มเหลวกับสตริงเหล่านี้:

[PPCG]
^[P\^]
[^\]]$
^\^?P
[^?][PG]$|<|PG
^[^\\|]*(\\\\)+[^\\|]*[^\]]$
^(.{,4}|.{9}|.{16,19}|.{5}P)$

ตรวจสอบความถูกต้องแล้ว
Martin Ender

5

22. รสชาติ PCRE - 29 ไบต์

เนื่องจาก # 22 ดั้งเดิมไม่ได้ถูกแก้ไขเป็นเวลา 1 ชั่วโมงฉันจึงคิดว่ามันไม่ถูกต้อง

^.{3,23}[.-~]..\$$|[^P?][PG]$

การสาธิต

คำตอบถัดไปต้องตรงกับสตริงต่อไปนี้:

PPCG
^P
^[P^]P
[^?][PG]$
(?<!\\..)(?!]).$
^[\w^]*$|!|]P|G]\$$
!|[^?]P(CG|G..)?$
[^])]\$|^\^?P|P.\].$
([.$?]|G\])\$$|^\^?P|\]P$
([P.$?]\$|[]^]P|G\]\$|CG)$
!|((G.|P|\.)\$|[^?]P|CG)$
^[(!P]|G..$|]..\||[^?]P$
^.{3,23}[.-~]..\$$|[^P?][PG]$

และล้มเหลวกับสตริงเหล่านี้:

[PPCG]
^[P\^]
[^\]]$
^\^?P
[^?][PG]$|<|PG
^[^\\|]*(\\\\)+[^\\|]*[^\]]$
^(.{,4}|.{9}|.{16,19}|.{5}P)$
^[^?]*[PG]$|[?$].*\$$
^[^[]P|]P|(G]|[.])\$$
\..$|!|\|G|^[\^P]P|P\^|G.\$$
...\^.P|^!|G]\$$|w|<!|^\^?P

1
ตรวจสอบความถูกต้องแล้ว (และใช่ถูกต้องแล้ว 22 ก่อนหน้านี้ไม่ถูกต้อง)
Martin Ender

5

26. รสชาติ Python - 28

^..(.[!G)(3w^]|.{7}$|$)|\$\?

ทดสอบ Regex101

คำตอบถัดไปต้องตรงกับสตริงต่อไปนี้:

PPCG
^P
^[P^]P
[^?][PG]$
(?<!\\..)(?!]).$
^[\w^]*$|!|]P|G]\$$
!|[^?]P(CG|G..)?$
[^])]\$|^\^?P|P.\].$
([.$?]|G\])\$$|^\^?P|\]P$
([P.$?]\$|[]^]P|G\]\$|CG)$
!|((G.|P|\.)\$|[^?]P|CG)$
^[(!P]|G..$|]..\||[^?]P$
^.{3,23}[.-~]..\$$|[^P?][PG]$
^..(.[!G)(3w^]|.{7}$|$)|\$\?

และล้มเหลวกับสตริงเหล่านี้:

[PPCG]
^[P\^]
[^\]]$
^\^?P
[^?][PG]$|<|PG
^[^\\|]*(\\\\)+[^\\|]*[^\]]$
^(.{,4}|.{9}|.{16,19}|.{5}P)$
^[^?]*[PG]$|[?$].*\$$
^[^[]P|]P|(G]|[.])\$$
\..$|!|\|G|^[\^P]P|P\^|G.\$$
...\^.P|^!|G]\$$|w|<!|^\^?P
([^\\}<]{3}|][^]]|^).?[$PG]$
^(..[^^].{4,22}\$|[^?]+\w)$|2
^(..[^^].{4,22}\$|[^?]+\w)$|~

ตรวจสอบความถูกต้องแล้ว
Martin Ender

5

30. รสชาติของ Python - 28

[[?C(].[-!)|w]|^P|^[^C|\\]*$

ทดสอบบน Regex101

เมื่อมีความประสงค์ ...

คำตอบถัดไปต้องตรงกับสตริงต่อไปนี้:

PPCG
^P
^[P^]P
[^?][PG]$
(?<!\\..)(?!]).$
^[\w^]*$|!|]P|G]\$$
!|[^?]P(CG|G..)?$
[^])]\$|^\^?P|P.\].$
([.$?]|G\])\$$|^\^?P|\]P$
([P.$?]\$|[]^]P|G\]\$|CG)$
!|((G.|P|\.)\$|[^?]P|CG)$
^[(!P]|G..$|]..\||[^?]P$
^.{3,23}[.-~]..\$$|[^P?][PG]$
^..(.[!G)(3w^]|.{7}$|$)|\$\?
\.\)|P[.$?]|w\^|^[^|C\\]*$|^P
^..(.[!)3G^w]|$)|\^.{7}$|G\)

และล้มเหลวกับสตริงเหล่านี้:

[PPCG]
^[P\^]
[^\]]$
^\^?P
[^?][PG]$|<|PG
^[^\\|]*(\\\\)+[^\\|]*[^\]]$
^(.{,4}|.{9}|.{16,19}|.{5}P)$
^[^?]*[PG]$|[?$].*\$$
^[^[]P|]P|(G]|[.])\$$
\..$|!|\|G|^[\^P]P|P\^|G.\$$
...\^.P|^!|G]\$$|w|<!|^\^?P
([^\\}<]{3}|][^]]|^).?[$PG]$
^(..[^^].{4,22}\$|[^?]+\w)$|2
^(..[^^].{4,22}\$|[^?]+\w)$|~
^..(.[!()3G^w]|.{7}$|$)|G\\
[[?C(].[-!)|w]|^P|^[^C|\\]*$

ตรวจสอบความถูกต้องแล้ว
jimmy23013

5

37. รสชาติ Perl - 30

\?[^$w]*\$$|[]C^]\w$|w.]|\w.\)

ส่งใน Regex101

การแก้ปัญหาถูกผลิตโดยโปรแกรมเดียวกันเช่นเดิม โปรแกรมได้พิมพ์โซลูชั่นตัวอักษร 29 ตัว\?[^$w]*\$|[]^C]\w)$|w.]|\w.\ด้วยฉันไม่รู้ว่าทำไมเนื่องจากดูเหมือน regex ผิดรูปแบบ ...

คำตอบถัดไปต้องตรงกับสตริงต่อไปนี้:

PPCG
^P
^[P^]P
[^?][PG]$
(?<!\\..)(?!]).$
^[\w^]*$|!|]P|G]\$$
!|[^?]P(CG|G..)?$
[^])]\$|^\^?P|P.\].$
([.$?]|G\])\$$|^\^?P|\]P$
([P.$?]\$|[]^]P|G\]\$|CG)$
!|((G.|P|\.)\$|[^?]P|CG)$
^[(!P]|G..$|]..\||[^?]P$
^.{3,23}[.-~]..\$$|[^P?][PG]$
^..(.[!G)(3w^]|.{7}$|$)|\$\?
\.\)|P[.$?]|w\^|^[^|C\\]*$|^P
^..(.[!)3G^w]|$)|\^.{7}$|G\)
\?[^w$]*\$$|[]^C]\w+$|w\^|\|..\)

และล้มเหลวกับสตริงเหล่านี้:

[PPCG]
^[P\^]
[^\]]$
^\^?P
[^?][PG]$|<|PG
^[^\\|]*(\\\\)+[^\\|]*[^\]]$
^(.{,4}|.{9}|.{16,19}|.{5}P)$
^[^?]*[PG]$|[?$].*\$$
^[^[]P|]P|(G]|[.])\$$
\..$|!|\|G|^[\^P]P|P\^|G.\$$
...\^.P|^!|G]\$$|w|<!|^\^?P
([^\\}<]{3}|][^]]|^).?[$PG]$
^(..[^^].{4,22}\$|[^?]+\w)$|2
^(..[^^].{4,22}\$|[^?]+\w)$|~
^..(.[!()3G^w]|.{7}$|$)|G\\
[[?C(].[-!)|w]|^P|^[^C|\\]*$
[?[CP(].[-<)|w]|^P|^[^C|\\]*$
^..(.{7}$|.[3Gw!^)]|$)|G.?.?\)
^...[3w!G)]|^[^\\C|]*$|G.?.?\)
^[^C\\|]+$|G.\)|\.\)|w\^|^P|\...?]
^P|!.3|w\^|^[^C\\|]+$|\.[)$-](?!.!)
\?[^$w]*\$$|[]C^]\w$|w.]|\w.\)

ตรวจสอบความถูกต้องแล้ว
Martin Ender

Ahaha ฉันค่อนข้างรำคาญฉันไม่ได้รับสิ่งนี้หลังจากมาถึงครึ่งแรก: P
Sp3000

5

40. PCRE - 33 ไบต์

[]^C]\w$|\w.\)|w[[+^]|\?[^w$]*\$$

ทดสอบบนRegex101

คำตอบถัดไปต้องตรงกับสตริงต่อไปนี้ :

PPCG
^P
^[P^]P
[^?][PG]$
(?<!\\..)(?!]).$
^[\w^]*$|!|]P|G]\$$
!|[^?]P(CG|G..)?$
[^])]\$|^\^?P|P.\].$
([.$?]|G\])\$$|^\^?P|\]P$
([P.$?]\$|[]^]P|G\]\$|CG)$
!|((G.|P|\.)\$|[^?]P|CG)$
^[(!P]|G..$|]..\||[^?]P$
^.{3,23}[.-~]..\$$|[^P?][PG]$
^..(.[!G)(3w^]|.{7}$|$)|\$\?
\.\)|P[.$?]|w\^|^[^|C\\]*$|^P
^..(.[!)3G^w]|$)|\^.{7}$|G\)
\?[^w$]*\$$|[]^C]\w+$|w\^|\|..\)
\w.\)|\?[^-$]*\$$|[]^C]\w$|w[+^]

และล้มเหลวกับสตริงเหล่านี้ :

[PPCG]
^[P\^]
[^\]]$
^\^?P
[^?][PG]$|<|PG
^[^\\|]*(\\\\)+[^\\|]*[^\]]$
^(.{,4}|.{9}|.{16,19}|.{5}P)$
^[^?]*[PG]$|[?$].*\$$
^[^[]P|]P|(G]|[.])\$$
\..$|!|\|G|^[\^P]P|P\^|G.\$$
...\^.P|^!|G]\$$|w|<!|^\^?P
([^\\}<]{3}|][^]]|^).?[$PG]$
^(..[^^].{4,22}\$|[^?]+\w)$|2
^(..[^^].{4,22}\$|[^?]+\w)$|~
^..(.[!()3G^w]|.{7}$|$)|G\\
[[?C(].[-!)|w]|^P|^[^C|\\]*$
[?[CP(].[-<)|w]|^P|^[^C|\\]*$
^..(.{7}$|.[3Gw!^)]|$)|G.?.?\)
^...[3w!G)]|^[^\\C|]*$|G.?.?\)
^[^C\\|]+$|G.\)|\.\)|w\^|^P|\...?]
^P|!.3|w\^|^[^C\\|]+$|\.[)$-](?!.!)
\?[^$w]*\$$|[]C^]\w$|w.]|\w.\)
\$..\\|\?[^w$]*\$$|w\^|[]^C]\w$
[]^C]\w$|\w.\)|w[[+^]|\?[^w$]*\$$

ตรวจสอบความถูกต้องแล้ว
วิ

1
ฉันมี 35 แต่ฉันไม่พอใจกับมันดังนั้นฉันจะดูว่าฉันจะได้อะไรที่น่าสนใจ
กว่านี้ไหม

และฉันมี 3 ตัวเลือกสำหรับคำตอบ 32 ตัวอักษร แต่ความท้าทายทั้งหมดได้รับความน่าเบื่อเล็กน้อย หากใครต้องการฉันก็โพสต์คำตอบได้
วิ

4

4. ECMAScript รส - 5 ไบต์

^\^?P

ทดสอบได้ที่นี่

คำตอบถัดไปต้องตรงกับสตริงต่อไปนี้:

PPCG
^P

และล้มเหลวกับสตริงเหล่านี้:

[PPCG]
^[P\^]
[^\]]$
^\^?P

1
ตรวจสอบความถูกต้องแล้ว
Beta Decay

4

5. ECMAScript รส - 6 ไบต์

^[P^]P

การทดสอบบนRegex101

ใช้เวลาในการปรุงรสด้วยความสำเร็จ

คำตอบถัดไปต้องตรงกับสตริงต่อไปนี้:

PPCG
^P
^[P^]P

และล้มเหลวกับสตริงเหล่านี้:

[PPCG]
^[P\^]
[^\]]$
^\^?P

ตรวจสอบความถูกต้องแล้ว
FryAmTheEggman

4

6. ECMAScript รส - 9 ไบต์

[^?][PG]$

การทดสอบบนRegex101

คำตอบถัดไปต้องตรงกับสตริงต่อไปนี้:

PPCG
^P
^[P^]P
[^?][PG]$

และล้มเหลวกับสตริงเหล่านี้:

[PPCG]
^[P\^]
[^\]]$
^\^?P

1
ตรวจสอบความถูกต้องแล้ว
FireFly

4

14. รสชาติ PCRE - 25

([.$?]|G\])\$$|^\^?P|\]P$

ทดสอบบนRegex101

นี่เริ่มยากขึ้นแล้ว

คำตอบถัดไปต้องตรงกับสตริงต่อไปนี้:

PPCG
^P
^[P^]P
[^?][PG]$
(?<!\\..)(?!]).$
^[\w^]*$|!|]P|G]\$$
!|[^?]P(CG|G..)?$
[^])]\$|^\^?P|P.\].$
([.$?]|G\])\$$|^\^?P|\]P$

และล้มเหลวกับสตริงเหล่านี้:

[PPCG]
^[P\^]
[^\]]$
^\^?P
[^?][PG]$|<|PG
^[^\\|]*(\\\\)+[^\\|]*[^\]]$
^(.{,4}|.{9}|.{16,19}|.{5}P)$

ตรวจสอบความถูกต้องแล้ว
Martin Ender

4

15. รสชาติ PCRE - 26

([P.$?]\$|[]^]P|G\]\$|CG)$

ทดสอบบนRegex101

คำตอบถัดไปต้องตรงกับสตริงต่อไปนี้:

PPCG
^P
^[P^]P
[^?][PG]$
(?<!\\..)(?!]).$
^[\w^]*$|!|]P|G]\$$
!|[^?]P(CG|G..)?$
[^])]\$|^\^?P|P.\].$
([.$?]|G\])\$$|^\^?P|\]P$
([P.$?]\$|[]^]P|G\]\$|CG)$

และล้มเหลวกับสตริงเหล่านี้:

[PPCG]
^[P\^]
[^\]]$
^\^?P
[^?][PG]$|<|PG
^[^\\|]*(\\\\)+[^\\|]*[^\]]$
^(.{,4}|.{9}|.{16,19}|.{5}P)$

1
ตรวจสอบความถูกต้องแล้ว
FireFly

4

16. รสชาติ PCRE - 21

^[^?]*[PG]$|[?$].*\$$

การทดสอบบนRegex 101

คำตอบถัดไปต้องตรงกับสตริงต่อไปนี้:

PPCG
^P
^[P^]P
[^?][PG]$
(?<!\\..)(?!]).$
^[\w^]*$|!|]P|G]\$$
!|[^?]P(CG|G..)?$
[^])]\$|^\^?P|P.\].$
([.$?]|G\])\$$|^\^?P|\]P$
([P.$?]\$|[]^]P|G\]\$|CG)$

และล้มเหลวกับสตริงเหล่านี้:

[PPCG]
^[P\^]
[^\]]$
^\^?P
[^?][PG]$|<|PG
^[^\\|]*(\\\\)+[^\\|]*[^\]]$
^(.{,4}|.{9}|.{16,19}|.{5}P)$
^[^?]*[PG]$|[?$].*\$$

PPCGมันไม่ตรงกับ
jimmy23013

@ user23013 คงที่
es1024

ตรวจสอบความถูกต้องแล้ว
jimmy23013

4

25. รสชาติ PCRE - 29

^(..[^^].{4,22}\$|[^?]+\w)$|~

ทดสอบที่นี่ (การทดสอบ regex มีส่วนเพิ่มเติม\nเพื่อให้แน่ใจว่าไม่มีการจับคู่หลายบรรทัดซึ่งไม่จำเป็นต้องจับคู่แต่ละสตริง)

นั่นเป็นผลไม้แขวนต่ำ! :) ฉันต้องแสดงความยินดีกับ plannapus แต่ regex นี้ดูน่าอัศจรรย์สำหรับชุดทดสอบปัจจุบัน ถ้าคุณต้องการ upvote คำตอบนี้ให้แน่ใจว่าได้ upvote คำตอบก่อนหน้าด้วยเช่นกัน!

คำตอบถัดไปต้องตรงกับสตริงต่อไปนี้:

PPCG
^P
^[P^]P
[^?][PG]$
(?<!\\..)(?!]).$
^[\w^]*$|!|]P|G]\$$
!|[^?]P(CG|G..)?$
[^])]\$|^\^?P|P.\].$
([.$?]|G\])\$$|^\^?P|\]P$
([P.$?]\$|[]^]P|G\]\$|CG)$
!|((G.|P|\.)\$|[^?]P|CG)$
^[(!P]|G..$|]..\||[^?]P$
^.{3,23}[.-~]..\$$|[^P?][PG]$

และล้มเหลวกับสตริงเหล่านี้:

[PPCG]
^[P\^]
[^\]]$
^\^?P
[^?][PG]$|<|PG
^[^\\|]*(\\\\)+[^\\|]*[^\]]$
^(.{,4}|.{9}|.{16,19}|.{5}P)$
^[^?]*[PG]$|[?$].*\$$
^[^[]P|]P|(G]|[.])\$$
\..$|!|\|G|^[\^P]P|P\^|G.\$$
...\^.P|^!|G]\$$|w|<!|^\^?P
([^\\}<]{3}|][^]]|^).?[$PG]$
^(..[^^].{4,22}\$|[^?]+\w)$|2
^(..[^^].{4,22}\$|[^?]+\w)$|~

1
ตรวจสอบความถูกต้องแล้ว
feersum

4

35. PCRE - 35 ไบต์

^P|!.3|w\^|^[^C\\|]+$|\.[)$-](?!.!)

ทดสอบบนRegex101

คำตอบถัดไปต้องตรงกับสตริงต่อไปนี้ :

PPCG
^P
^[P^]P
[^?][PG]$
(?<!\\..)(?!]).$
^[\w^]*$|!|]P|G]\$$
!|[^?]P(CG|G..)?$
[^])]\$|^\^?P|P.\].$
([.$?]|G\])\$$|^\^?P|\]P$
([P.$?]\$|[]^]P|G\]\$|CG)$
!|((G.|P|\.)\$|[^?]P|CG)$
^[(!P]|G..$|]..\||[^?]P$
^.{3,23}[.-~]..\$$|[^P?][PG]$
^..(.[!G)(3w^]|.{7}$|$)|\$\?
\.\)|P[.$?]|w\^|^[^|C\\]*$|^P
^..(.[!)3G^w]|$)|\^.{7}$|G\)

และล้มเหลวกับสตริงเหล่านี้ :

[PPCG]
^[P\^]
[^\]]$
^\^?P
[^?][PG]$|<|PG
^[^\\|]*(\\\\)+[^\\|]*[^\]]$
^(.{,4}|.{9}|.{16,19}|.{5}P)$
^[^?]*[PG]$|[?$].*\$$
^[^[]P|]P|(G]|[.])\$$
\..$|!|\|G|^[\^P]P|P\^|G.\$$
...\^.P|^!|G]\$$|w|<!|^\^?P
([^\\}<]{3}|][^]]|^).?[$PG]$
^(..[^^].{4,22}\$|[^?]+\w)$|2
^(..[^^].{4,22}\$|[^?]+\w)$|~
^..(.[!()3G^w]|.{7}$|$)|G\\
[[?C(].[-!)|w]|^P|^[^C|\\]*$
[?[CP(].[-<)|w]|^P|^[^C|\\]*$
^..(.{7}$|.[3Gw!^)]|$)|G.?.?\)
^...[3w!G)]|^[^\\C|]*$|G.?.?\)
^[^C\\|]+$|G.\)|\.\)|w\^|^P|\...?]
^P|!.3|w\^|^[^C\\|]+$|\.[)$-](?!.!)

ตัวตรวจสอบของฉันแสดงว่าไม่มีข้อผิดพลาด
วิ

ตรวจสอบความถูกต้องแล้ว (@Vi. แผงควบคุมจะมองหาวลีนี้)
Martin Ender

ฉันคิดจะใช้วลีนั้น แต่ไม่แน่ใจว่าฉันต้องการแสดงความคิดเห็นอย่างเป็นทางการหรือไม่
วิ

คำตอบ 34 ตัวละครอื่น ๆ ที่ฉันพูดถึงก่อนหน้านี้ดูเหมือนว่าจะทำงานที่นี่ รอ 4 ชั่วโมง (หรืออย่างนั้น) ...
Vi

ฉันไม่ได้แฮ็ค - ฉันมอบหมายให้คอมพิวเตอร์ อาจจะเขียนบอตคำตอบโดยใช้ StackExchange API? ..
Vi

4

36. รสชาติของงูหลาม - 32

\?[^w$]*\$$|[]^C]\w+$|w\^|\|..\)

ทดสอบบน Regex101

ฉันมี 32-byte regexes สามคนและโชคดีที่หนึ่งยังคงใช้งานได้: D

คำตอบถัดไปต้องตรงกับสตริงต่อไปนี้:

PPCG
^P
^[P^]P
[^?][PG]$
(?<!\\..)(?!]).$
^[\w^]*$|!|]P|G]\$$
!|[^?]P(CG|G..)?$
[^])]\$|^\^?P|P.\].$
([.$?]|G\])\$$|^\^?P|\]P$
([P.$?]\$|[]^]P|G\]\$|CG)$
!|((G.|P|\.)\$|[^?]P|CG)$
^[(!P]|G..$|]..\||[^?]P$
^.{3,23}[.-~]..\$$|[^P?][PG]$
^..(.[!G)(3w^]|.{7}$|$)|\$\?
\.\)|P[.$?]|w\^|^[^|C\\]*$|^P
^..(.[!)3G^w]|$)|\^.{7}$|G\)
\?[^w$]*\$$|[]^C]\w+$|w\^|\|..\)

และล้มเหลวกับสตริงเหล่านี้:

[PPCG]
^[P\^]
[^\]]$
^\^?P
[^?][PG]$|<|PG
^[^\\|]*(\\\\)+[^\\|]*[^\]]$
^(.{,4}|.{9}|.{16,19}|.{5}P)$
^[^?]*[PG]$|[?$].*\$$
^[^[]P|]P|(G]|[.])\$$
\..$|!|\|G|^[\^P]P|P\^|G.\$$
...\^.P|^!|G]\$$|w|<!|^\^?P
([^\\}<]{3}|][^]]|^).?[$PG]$
^(..[^^].{4,22}\$|[^?]+\w)$|2
^(..[^^].{4,22}\$|[^?]+\w)$|~
^..(.[!()3G^w]|.{7}$|$)|G\\
[[?C(].[-!)|w]|^P|^[^C|\\]*$
[?[CP(].[-<)|w]|^P|^[^C|\\]*$
^..(.{7}$|.[3Gw!^)]|$)|G.?.?\)
^...[3w!G)]|^[^\\C|]*$|G.?.?\)
^[^C\\|]+$|G.\)|\.\)|w\^|^P|\...?]
^P|!.3|w\^|^[^C\\|]+$|\.[)$-](?!.!)

1
ตรวจสอบความถูกต้องแล้ว
Martin Ender

ความถูกต้องเป็น Perl regex ได้รับการตรวจสอบ
วิ

หวังว่าคำถามนี้จะไม่ทำงานจนกว่าจะถึงวันพรุ่งนี้เนื่องจากฉันมีคำตอบ 30 ตัวอักษรที่รอการโพสต์
วิ
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.