คำถามติดแท็ก regular-expression

ความท้าทายของรหัสที่เกี่ยวข้องกับการใช้นิพจน์ทั่วไป

1
ทำโพลิกอน regex
เขียน regex ที่ทำงานในอย่างน้อย 2 รสชาติ regex (หรือเวอร์ชัน) และจับคู่สตริงที่แตกต่างกันในแต่ละรส (หรือรุ่น) ที่ทำงานอยู่ สตริงที่จะจับคู่ในการท้าทายนี้เป็นคำแรกของชื่อรหัส Ubuntu ซึ่งแสดงอยู่ด้านล่าง regex ของคุณต้องตรงกันจากด้านบนของรายการ นั่นคือถ้างานของคุณ regex 3 รสชาติก็มีการแข่งขันWarty HoaryและBreezyและคนอื่นไม่ได้ Warty Hoary Breezy Dapper Edgy Feisty Gutsy Hardy Intrepid Jaunty Karmic Lucid Maverick Natty Oneiric Precise Quantal Raring Saucy Trusty Utopic Vivid Wily Xenial Yakkety Zesty 17.10 18.04 18.10 19.04 …

8
ลบบรรทัดเดียวและความคิดเห็นหลายบรรทัดจากสตริง
เป้าหมาย ใช้ภาษาการเขียนโปรแกรมที่คุณเลือกเขียนโปรแกรมที่สั้นที่สุดเพื่อกำจัดความคิดเห็นจากสตริงที่แทนโปรแกรม C อินพุต สตริงสามารถนำมาเป็นรูปแบบของการป้อนข้อมูลใด ๆ แต่ก็อาจถูกนำมาเป็นตัวแปร คำแนะนำ ความคิดเห็นที่แตกต่างกันสองประเภทจะถูกลบออก: ความคิดเห็นหลายบรรทัดเริ่มต้นด้วย/*และลงท้ายด้วย*/ ความคิดเห็นบรรทัดเดียวเริ่มต้นด้วย//และลงท้ายด้วยตัวแบ่งบรรทัดสไตล์ Linux (LF, \n) ความคิดเห็นภายในสตริงจะไม่ถูกลบ สำหรับจุดประสงค์ของการท้าทายนี้คุณจะต้องพิจารณา"สตริงที่ถูก จำกัด โดยเฉพาะอย่างยิ่งคุณสามารถเพิกเฉยต่อความเป็นไปได้ของ'ตัวอักษรที่ถูก จำกัด ตัวอักษร นอกจากนี้คุณยังสามารถละเว้น Trigraphs และการดำเนินการต่อเนื่องของบรรทัด ( /\<LF>*...) ตัวอย่าง การป้อนข้อมูล: #include <stdio.h> int main(int argc, char** argv) { // this comment will be removed if (argc > 1) { printf("Too many arguments.\n"); // …

2
เอกพจน์หรือพหูพจน์?
นี่คือรายการคำนามภาษาอังกฤษ 30 คำในรูปเอกพจน์และพหูพจน์ งานของคุณคือการเขียนสำนวนปกติที่สั้นที่สุดที่ตรงกับคำนามทั้งหมดในรูปแบบเดียวและไม่มีใครในรูปแบบอื่น ๆ (ง่าย ๆ คำนามภาษาอังกฤษทั้งหมดลงท้ายsด้วยพหูพจน์ใช่ไหม?) SINGULAR PLURAL --------- -------- car cars boat boats man men woman women omen omens bus buses cactus cacti spy spies pie pies louse lice mouse mice amice amices goose geese creese creeses person people child children siren sirens ox oxen foot feet …

2
Regex: จับคู่ซีรี่ส์ที่คุ้มค่า
บทนำ ฉันไม่เห็นความท้าทายของ regex มากมายในที่นี้ดังนั้นฉันจึงขอเสนอวิธีง่าย ๆ ที่หลอกลวงซึ่งสามารถทำได้หลายวิธีโดยใช้รสชาติที่หลากหลายของ regex ฉันหวังว่ามันจะมอบความสนุกให้กับผู้ที่ชื่นชอบการเล่นกอล์ฟ regex ท้าทาย ความท้าทายคือการจับคู่สิ่งที่ฉันได้ขนานนามอย่างซีรี่ส์ "คุ้มทุน" อย่างหลวม ๆ : ชุดของตัวละครที่แตกต่างกันจำนวนเท่ากัน นี่คือตัวอย่างที่อธิบายได้ดีที่สุด การจับคู่: aaabbbccc xyz iillppddff ggggggoooooollllllffffff abc banana ไม่ตรงกัน: aabc xxxyyzzz iilllpppddff ggggggoooooollllllfff aaaaaabbbccc aaabbbc abbaa aabbbc ที่จะพูดคุยเราต้องการเพื่อให้ตรงกับเรื่องของรูปแบบ ( สำหรับรายชื่อใด ๆ ของตัวละครเพื่อที่ทั้งหมดc1)n(c2)n(c3)n...(ck)nc1ckci != ci+1i, k > 1, and n > 0. ชี้แจง: อินพุตจะไม่ว่างเปล่า อักขระอาจซ้ำตัวเองในภายหลังในสตริง …

4
วันที่บีบอัดของสัปดาห์
กำหนดอินพุตของรายการวันในสัปดาห์เอาท์พุทการเรียงลำดับที่สั้นที่สุดของรายการ รูปแบบของการป้อนข้อมูลที่เป็นสตริงประกอบด้วยหนึ่งหรือมากกว่าของสตริงสองตัวอักษรSu(วันอาทิตย์), Mo(วันจันทร์) Tu( ฯลฯ ) We, Th, และFr Saอินพุตอาจไม่จำเป็นต้องถูกจัดเรียงตามลำดับ ในการแปลงอินพุตเป็นรูปแบบเอาต์พุต จัดเรียงอินพุตตามวันในสัปดาห์โดยเริ่มจากวันอาทิตย์ (เช่นThMoSaSuFrTuWe-> SuMoTuWeThFrSa) ลดตัวย่อลงไปหนึ่งตัวอักษรถ้ามันไม่มีใบความคลุมเครือ ตัวอย่างเช่นSuMoTuWeควรเป็นSMTWเพราะ S ตัวแรกไม่สามารถเป็นวันเสาร์ได้เนื่องจากจะทำให้เอาต์พุตไม่ได้เรียงลำดับ (เหมือนกันสำหรับ T) อย่างไรก็ตามThFrSaควรเป็นThFSเช่นวันอังคารและวันพฤหัสบดีมาก่อนวันศุกร์และลดลงเพื่อTFSสร้างความกำกวม หากเอาท์พุทเป็นตอนนี้MTWTFเอาท์พุทDแทน (ซึ่งหมายถึง "สัปดาห์วัน ") ในทำนองเดียวกันSSควรจะเป็นEสำหรับสัปดาห์สิ้นสุด ในที่สุด SMTWTFSควรกลายเป็นAสำหรับทุกวัน ทั้งอินพุตและเอาต์พุตต้องเป็นสตริงเดี่ยว เนื่องจากนี่คือcode-golfรหัสที่สั้นที่สุดเป็นไบต์จะเป็นผู้ชนะ กรณีทดสอบ: In Out | In Out -----------------------|-------------------- SuTu STu | SuTuWe STW SuTuSa STuS | SuWeTh SWT TuThSa TTS | …

9
รวมระยะเวลา
ท้าทาย เขียนรหัสที่สั้นที่สุดที่สามารถรวมระยะเวลาทั้งหมดที่ปรากฏใน stdin โปรแกรมต้องพิจารณาสตริงที่ตรงกับหนึ่งในรูปแบบต่อไปนี้และละเว้นส่วนที่เหลือ HH:MM:SS (it will be interpreted as HH hours, MM minutes and SS seconds) H:MM:SS (it will be interpreted as H hours, MM minutes and SS seconds) MM:SS (it will be interpreted as MM minutes, SS seconds) M:SS (it will be interpreted as M minutes, SS seconds) …

25
Patttern ง่าย
ปัจจัยการผลิต: ตัวเลขสองหลักเดียว (เรียกว่าพวกมันmและn) และสองตัวอักษร (เรียกมันว่า) aและbในรูปแบบอินพุตที่คุณเลือก เอาท์พุท: m=2, n=5, a='a', b='b'สำหรับคำแนะนำการหลอก เอาต์พุตของคุณจะเป็นสตริงที่สร้างจากอินพุตสี่ตัวของคุณ ขอเรียกสตริงที่มีค่าresult ""ครั้งแรก concatenate aบนresult mเวลาเพื่อ concatenate aบนresult 2ครั้ง ตอนนี้เท่ากับresult aaประการที่สอง concatenate bบนresult mเวลาเพื่อ concatenate bบนresult 2ครั้ง ตอนนี้เท่ากับresult aabbสุดท้ายหากผลเป็นที่เรียบร้อยแล้วนานกว่าn, ตัดเพื่อที่จะมีความยาวresult nมิฉะนั้นต่อสลับกับmระยะเวลาในการทำงานของaและbจนกว่าจะมีความยาวresult nสุดท้ายresultมีที่ซึ่งมีความยาวaabba5 กรณีทดสอบ: Input: m = 2, n = 4, a = A, b = B Output: AABB Input: …
17 code-golf  string  code-golf  arithmetic  code-golf  string  array-manipulation  rubiks-cube  code-golf  math  number  code-golf  tips  bash  code-golf  ascii-art  music  code-golf  arithmetic  code-golf  math  number  arithmetic  integer  code-golf  number  array-manipulation  code-golf  geometry  grid  set-partitions  code-golf  math  number  code-golf  combinatorics  code-golf  regular-expression  code-golf  permutations  code-golf  ascii-art  code-golf  number  array-manipulation  matrix  code-golf  kolmogorov-complexity  compile-time  cops-and-robbers  polyglot  cops-and-robbers  polyglot  code-golf  string  code-golf  string  ascii-art  matrix  animation  code-golf  ascii-art  code-golf  string  balanced-string  code-golf  integer  integer-partitions  expression-building 

2
รวบรวม Regexes
ในภารกิจนี้คุณต้องเขียนโปรแกรมที่อ่านนิพจน์ปกติและสร้างโปรแกรมอื่นที่แสดงว่านิพจน์ปกตินั้นยอมรับอินพุตหรือไม่ ผลลัพธ์จะต้องเป็นโปรแกรมที่เขียนด้วยภาษาเดียวกันกับที่คุณส่ง อินพุต อินพุตคือการแสดงออกปกติRจับคู่ ABNF ดังต่อไปนี้ (กฎการผลิตเริ่มต้นREGEX): REGEX = *( STAR / GROUP / LITERAL / ALTERNATIVE ) STAR = REGEX '*' GROUP = '(' REGEX ')' LITERAL = ALPHA / DIGIT ALTERNATIVE = REGEX '|' REGEX หากอินพุตไม่ตรงกับไวยากรณ์นี้พฤติกรรมของโปรแกรมของคุณจะไม่ได้กำหนด การตีความ ป้อนข้อมูลเป็นนิพจน์ปกติโดยที่*Kleene-star (หมายถึงอาร์กิวเมนต์ซ้ายซ้ำแล้วซ้ำอีกเป็นศูนย์หรือมากกว่านั้น ) |เป็นอีกทางเลือกหนึ่ง(และ)จัดกลุ่มและไม่มีตัวดำเนินการใด ๆ ที่ต่อกัน การจัดกลุ่มจะมีความสำคัญเหนือกว่าดาวฤกษ์จะมีความสำคัญเหนือกว่าการต่อเรียงและการเรียงต่อกันจะมีความสำคัญมากกว่าทางเลือก สตริงมีการกล่าวถึงว่าเป็นที่ยอมรับถ้า regex ตรงกับสตริงทั้งหมด เอาท์พุต …

1
Regex กำลังตรวจสอบความถูกต้องของ regex [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัพเดตคำถามเพื่อให้เป็นไปตามหัวข้อสำหรับ Code Golf Stack Exchange ปิดให้บริการใน2 ปีที่ผ่านมา สร้าง regex ที่จะยอมรับสตริง regex เป็นอินพุตและตรวจสอบว่ามันถูกต้อง โดยทั่วไป regex ของคุณควรจะสามารถตรวจสอบตัวเอง (ไม่ควรตรวจสอบ regex ที่ไม่ถูกต้องดังนั้นคุณจึงไม่สามารถใช้.*;) รสชาติของคุณจะต้องได้รับการสนับสนุนอย่างเต็มที่จากการใช้งานที่รู้จักกันดี (Perl, sed, grep, gawk, ฯลฯ ) และต้องสนับสนุนอย่างเต็มที่ว่าการใช้งานเหล่านั้นรองรับอะไรบ้าง [ไม่ต้องกังวลกับทนายพูด ฉันแค่พยายามลบช่องว่างที่เป็นไปได้สำหรับสมาร์ท ***] ฉันเขียนโค้ดกอล์ฟแต่ฉันกังวลว่ามันจะให้ความรู้แก่ผู้ที่รู้จักและใช้รสชาติที่ไม่มีคุณสมบัติ หรือความกังวลของฉันไม่มีมูลความจริง?
17 code-challenge  code-golf  code-golf  game  sudoku  code-challenge  math  ai-player  code-challenge  sorting  rosetta-stone  code-challenge  code-challenge  programming-puzzle  code-golf  number  code-golf  maze  code-golf  math  regular-expression  code-golf  sequence  code-golf  graph-theory  code-golf  string  word-puzzle  natural-language  brainfuck  metagolf  optimized-output  fastest-algorithm  code-golf  game-of-life  cellular-automata  code-golf  puzzle-solver  grid  code-golf  combinatorics  binary-tree  popularity-contest  code-challenge  code-golf  ascii-art  kolmogorov-complexity  brainfuck  metagolf  code-golf  c  date  code-golf  word-puzzle  crossword  word-search  code-golf  code-golf  quine  code-golf  string  random 

3
Regex ย้อนกลับ - สลายการแสดงออกปกติ
ปัญหา ฉันมีสำนวนปกติที่ต้องใช้ในบางโค้ด แต่ฉันใช้ภาษาการเขียนโปรแกรมที่ไม่รองรับ regex! โชคดีที่ฉันรู้ว่าสตริงทดสอบจะมีความยาวสูงสุดและจะประกอบด้วย ASCII ที่พิมพ์ได้เท่านั้น ความท้าทาย คุณต้องป้อน regex และตัวเลขnและส่งออกทุกสตริงที่ประกอบด้วย ASCII ที่พิมพ์ได้ (รหัส ASCII 32 ถึง 126 รวมถึง~ไม่มีแท็บหรือบรรทัดใหม่) ที่มีความยาวน้อยกว่าหรือเท่ากับnที่ตรงกับ regex นั้น คุณไม่สามารถใช้นิพจน์ทั่วไปหรือฟังก์ชันจับคู่ regex ในรหัสของคุณได้เลย นิพจน์ทั่วไปจะถูก จำกัด ดังต่อไปนี้: ตัวอักษรตัวอักษร (และหนีออกมาซึ่งบังคับให้ตัวละครที่จะเป็นตัวอักษรเพื่อให้\.เป็นตัวอักษร., \nเป็นตัวอักษรn(เทียบเท่าเพียงn) และ\wเทียบเท่ากับw. คุณไม่จำเป็นต้องลำดับการสนับสนุนการหลบหนี.) . - อักขระตัวแทน (อักขระใด ๆ ) คลาสอักขระ[abc]หมายถึง "a หรือ b หรือ c" และ[d-f]หมายถึงอะไรตั้งแต่ d ถึง f (เช่น …

6
รั้วไบนารี
การป้อนข้อมูล: จำนวนเต็มnในช่วง2 <= n <= 10 รายการจำนวนเต็มบวก เอาท์พุท: แปลงจำนวนเต็มเป็นตัวแทนไบนารีของพวกเขา (โดยไม่มีเลขศูนย์นำหน้า) และเข้าร่วมพวกเขาทั้งหมดเข้าด้วยกัน จากนั้นกำหนดสตริงย่อยไบนารีทั้งหมดที่เป็น 'รั้วไบนารี' โดยใช้nจำนวนการโพสต์รั้ว ช่องว่าง (ศูนย์) ระหว่างแต่ละโพสต์รั้วนั้นไม่เกี่ยวข้อง (อย่างน้อย 1) แต่โพสต์รั้วนั้นควรมีความกว้างเท่ากัน ที่นี่ regexes สตริงย่อยควรตรงกับแต่ละn: n Regex to match to be a 'binary fence' Some examples 2 ^(1+)0+\1$ 101; 1100011; 1110111; 3 ^(1+)0+\10+\1$ 10101; 1000101; 110011011; 4 ^(1+)0+\10+\10+\1$ 1010101; 110110011011; 11110111100001111001111; etc. …

4
การจับคู่ URL ที่สั้นที่สุดใน JavaScript
สร้างนิพจน์ปกติที่สั้นที่สุดซึ่งจะจับคู่กับ URL ในข้อความเมื่อเรียกใช้ใน JavaScript ตัวอย่าง: "some text exampley.com".match(/your regular expression goes here/); การแสดงออกปกติต้อง รวบรวม URL ที่ถูกต้องทั้งหมดที่ใช้สำหรับ http และ https ไม่ต้องกังวลกับการไม่จับคู่สำหรับสตริงการค้นหา URL ที่ไม่ถูกต้องเช่น URL super.awesome/cool จะถูกต้องเมื่อเรียกใช้เป็น JavaScript regex เกณฑ์การทดสอบ: การจับคู่: http://example.com http://example.com/ http://example.com/super https://example.com/super example.com/super example.com example.com/su-per_duper/?add=yes&subtract=no example.com/archive/index.html twitter.com/#!/reply example.com/234ret2398oent/234nth codegolf.stackexchange.com/questions/464 crazy.wow.really.example.com/?cat=nth%3E example-example.com example1.com ไม่ตรงกับ: ตัวอย่าง ซุปเปอร์ / เย็น อรุณสวัสดิ์ ฉันสามารถ …

2
ValiDate ISO 8601 โดย RX
ท้าทาย ค้นหา regex ที่สั้นที่สุด ตรวจสอบความถูกต้องเช่นการจับคู่ทุกวันที่เป็นไปได้ในปฏิทินเกรโกเรียนProleptic (ซึ่งใช้กับวันที่ทั้งหมดก่อนที่จะนำไปใช้ครั้งแรกใน 1582) และ ไม่ตรงกับวันใด ๆ ที่ไม่ถูกต้อง เอาท์พุต การส่งออกจึงเป็นความจริงหรือเท็จ อินพุต อินพุตอยู่ในรูปแบบวันที่ISO 8601ที่ขยายเพิ่ม 3 รูปแบบ - ไม่มีเวลา สองรายการแรกคือ±YYYY-MM-DD(ปีเดือนวัน) และ±YYYY-DDD(ปีวัน) ทั้งสองต้องการปลอกพิเศษสำหรับวันอธิกสุรทิน พวกมันถูกจับคู่อย่างไร้เดียงสาโดย RXs ที่ขยายเพิ่มเหล่านี้ (?<year>[+-]?\d{4,})-(?<month>\d\d)-(?<day>\d\d) (?<year>[+-]?\d{4,})-(?<doy>\d{3}) รูปแบบอินพุตที่สามคือ±YYYY-wWW-D(ปี, สัปดาห์, วัน) มันเป็นสิ่งที่ซับซ้อนเพราะรูปแบบการกระโดดสัปดาห์ที่ซับซ้อน (?<year>-?\d{4,})-W(?<week>\d\d)-(?<dow>\d) การตรวจสอบความถูกต้องพื้นฐาน แต่ไม่เพียงพอสำหรับการรวมกันทั้งสามจะมีลักษณะดังนี้: [+-]?\d{4,}-((0\d|1[0-2])-([0-2]\d|3[01]) ↩ |([0-2]\d\d|3[0-5]\d|36[0-6]) ↩ |(W([0-4]\d|5[0-3])-[1-7])) เงื่อนไข ปีอธิกสุรทินในปฏิทินเกรกอเรียนโกเรียนมีวันก้าวกระโดด …-02-29และทำให้มันเป็น 366 วันนานจึง…-366มีอยู่ เหตุการณ์นี้เกิดขึ้นในปีใดก็ตามที่มีเลขลำดับหารด้วย 4 แต่ไม่เท่ากับ 100 เว้นแต่จะหารด้วย …

2
ตรงกับการเรียงสับเปลี่ยน!
ความท้าทายของคุณคือการสร้าง regex ที่ตรงกับการเปลี่ยนแปลงสตริงของตัวเองทุกอย่างและไม่มีอะไรอื่น การแข่งขันจะต้องเป็นกรณี ๆ ไป ตัวอย่างเช่นถ้า regex ของคุณคือ: ABC มันควรจะจับคู่ (และตรงเท่านั้น) สตริงเหล่านี้: ABC ACB BAC BCA CAB CBA ไม่ควรจับคู่สิ่งที่ต้องการ: AABC (contains an extra A) ABCD (contains an extra D) AC (no B) AAA (no B and C, extra 2 A's) abc (case-sensitive) กฎ: คุณได้รับอนุญาตให้ใช้รสชาติของ regex ที่คุณชอบ ช่องโหว่มาตรฐานใช้ คุณต้องมีอักขระอย่างน้อยสองตัวในรหัสของคุณ นั่นหมายถึงวิธีแก้ปัญหาเช่น1นั้นไม่ถูกต้อง …

4
จับคู่ URL การแลกเปลี่ยนสแต็ก
อารัมภบท หลังจากติดตั้งส่วนขยายเบราว์เซอร์ anti-XSS แล้ว Stack Snippets ก็หยุดทำงานในเครือข่าย Stack Exchange ทั้งหมด ฉันไม่สามารถเรียนรู้จากStack Overflowได้อีกต่อไปดูการสาธิตการทำงานบนประสบการณ์ผู้ใช้และที่แย่ที่สุดคือไม่สามารถทดสอบคำตอบ JavaScript เกี่ยวกับProgramming Puzzles และ Code Golf ได้ ! ฉันค้นหาวิธีแก้ไขอย่างถี่ถ้วนและพบกล่องอินพุตขนาดเล็กในการตั้งค่าซึ่งสามารถวาง regex เดียวได้ ฉันไม่พอดีกับไซต์ Stack Exchange ทั้งหมดในกล่องเล็ก ๆ นี้ดังนั้นฉันจึงขอความช่วยเหลือ นี่คือคำถามนั้น งาน งานของคุณคือการสร้างนิพจน์ทั่วไปที่ตรงกับ URL ของเว็บไซต์ Exchange Stack ทั้งหมดโดยไม่ต้องจับคู่โดเมนใด ๆ ที่ไม่ได้เป็นเจ้าของโดย Stack Overflow Inc. นิพจน์ทั่วไปของคุณต้องตรงกับ URL ทั้งหมดด้วยส่วนต่อไปนี้: protocolนี่อาจจะเป็นหรือhttp://https:// domain: นี่จะเป็นรายการจากรายการนี้: stackoverflow.com www.stackoverflow.com …

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