คำถามติดแท็ก regex

นิพจน์ทั่วไปจัดเตรียมภาษาที่ประกาศเพื่อจับคู่รูปแบบภายในสตริง โดยทั่วไปจะใช้สำหรับการตรวจสอบความถูกต้องสตริงการแยกวิเคราะห์และการแปลง เนื่องจากนิพจน์ทั่วไปนั้นไม่ได้มาตรฐานอย่างสมบูรณ์คำถามทั้งหมดที่มีแท็กนี้จึงควรมีแท็กที่ระบุภาษาการเขียนโปรแกรมหรือเครื่องมือที่เกี่ยวข้อง หมายเหตุ: การขอ HTML, JSON และอื่น ๆ regex มีแนวโน้มที่จะพบกับปฏิกิริยาเชิงลบ หากมีการแยกวิเคราะห์มันใช้ที่แทน

13
การใช้นิพจน์ปกติเพื่อแยกค่าใน Java
ฉันมีหลายสายในรูปแบบคร่าวๆ: [some text] [some number] [some more text] ฉันต้องการแยกข้อความใน [บางหมายเลข] โดยใช้คลาส Java Regex ฉันรู้ว่าฉันต้องการใช้นิพจน์ปกติอย่างไร (แม้ว่าคำแนะนำทั้งหมดยินดีต้อนรับ) สิ่งที่ฉันสนใจจริงๆคือการเรียก Java เพื่อใช้สตริง regex และใช้กับแหล่งข้อมูลเพื่อสร้างมูลค่า [หมายเลขบางหมายเลข] แก้ไข: ฉันควรเพิ่มว่าฉันสนใจเพียง [หมายเลขหนึ่ง] (โดยทั่วไปตัวอย่างแรก) สตริงที่มานั้นสั้นและฉันจะไม่มองหาเหตุการณ์ที่เกิดขึ้นจำนวนมาก [บางหมายเลข]
169 java  regex 

5
RegexOptions.Compiled ทำงานอย่างไร
เกิดอะไรขึ้นเบื้องหลังเมื่อคุณทำเครื่องหมายนิพจน์ปกติให้เป็นคอมไพล์แล้ว สิ่งนี้เปรียบเทียบ / แตกต่างจากนิพจน์ทั่วไปที่แคชได้อย่างไร การใช้ข้อมูลนี้คุณจะทราบได้อย่างไรว่าต้นทุนการคำนวณมีน้อยมากเมื่อเทียบกับการเพิ่มประสิทธิภาพ
169 .net  regex 

9
(grep) Regex จับคู่อักขระที่ไม่ใช่ ASCII หรือไม่
บน Linux ฉันมีไดเรกทอรีที่มีไฟล์จำนวนมาก บางคนมีอักขระที่ไม่ใช่ ASCII แต่พวกเขาจะถูกต้องทั้งหมดUTF-8 โปรแกรมหนึ่งมีข้อบกพร่องที่ป้องกันไม่ให้ทำงานกับชื่อไฟล์ที่ไม่ใช่ ASCII และฉันต้องค้นหาว่ามีผลกระทบกับจำนวนเท่าใด ฉันจะทำสิ่งนี้ด้วยfindแล้วทำgrepเพื่อพิมพ์อักขระที่ไม่ใช่ ASCII จากนั้นทำ a wc -lเพื่อค้นหาตัวเลข มันไม่จำเป็นต้องเป็น grep ฉันสามารถใช้นิพจน์ทั่วไปของ Unix มาตรฐานเช่นPerl , sed , AWKเป็นต้น อย่างไรก็ตามมีการแสดงออกปกติสำหรับ 'ตัวละครที่ไม่ใช่ตัวอักษร ASCII' หรือไม่?
169 regex  unicode  grep  ascii 

7
วิธีกรองแถวในแพนด้าโดย regex
ฉันต้องการกรองดาต้าเฟรมอย่างละเอียดโดยใช้ regex ในหนึ่งในคอลัมน์ สำหรับตัวอย่างที่วางแผนไว้: In [210]: foo = pd.DataFrame({'a' : [1,2,3,4], 'b' : ['hi', 'foo', 'fat', 'cat']}) In [211]: foo Out[211]: a b 0 1 hi 1 2 foo 2 3 fat 3 4 cat ฉันต้องการกรองแถวเป็นแถวที่ขึ้นต้นด้วยการfใช้ regex ไปก่อน: In [213]: foo.b.str.match('f.*') Out[213]: 0 [] 1 () 2 () 3 [] …
169 python  regex  pandas 

20
จะแยก URL พื้นฐานจากสตริงใน JavaScript ได้อย่างไร
ฉันกำลังพยายามหาวิธีที่ง่ายและเชื่อถือได้ในการแยก URL พื้นฐานจากตัวแปรสตริงโดยใช้ JavaScript (หรือ jQuery) ตัวอย่างเช่นให้บางสิ่งเช่น: http://www.sitename.com/article/2009/09/14/this-is-an-article/ ฉันต้องการได้รับ: http://www.sitename.com/ การแสดงออกปกติเป็นทางออกที่ดีที่สุดหรือไม่? ถ้าเป็นเช่นนั้นฉันสามารถใช้คำสั่งใดเพื่อกำหนด URL หลักที่แยกจากสตริงที่กำหนดให้กับตัวแปรใหม่ ฉันได้ทำการค้นหาบางอย่างแล้ว แต่ทุกสิ่งที่ฉันพบในโลก JavaScript ดูเหมือนว่าจะหมุนไปรอบ ๆ เพื่อรวบรวมข้อมูลนี้จาก URL เอกสารจริงโดยใช้location.hostหรือคล้ายกัน
168 javascript  regex  string  url 

18
นิพจน์ทั่วไปสำหรับการจับคู่รูปแบบเวลา HH: MM
ฉันต้องการ regexp สำหรับเวลาจับคู่ในรูปแบบ HH: MM นี่คือสิ่งที่ฉันมีและใช้งานได้: ^[0-2][0-3]:[0-5][0-9]$ สิ่งนี้ตรงกับทุกอย่างตั้งแต่ 00:00 น. ถึง 23:59 น. อย่างไรก็ตามฉันต้องการเปลี่ยนเพื่อให้ 00:00 น. และ 01:00 น. ฯลฯ มีการจับคู่และ 00:00 น. และ 01:30 น. นั่นคือเพื่อให้ตัวเลขทางซ้ายสุดเป็นทางเลือกเพื่อจับคู่ HH: MM และ H: MM ความคิดใดที่จะทำให้การเปลี่ยนแปลงนั้น? ฉันต้องการสิ่งนี้เพื่อทำงานใน javascript เช่นเดียวกับ php
167 regex 

1
การเรียนรู้นิพจน์ทั่วไป [ปิด]
ตามที่เป็นอยู่ในปัจจุบันคำถามนี้ไม่เหมาะสำหรับรูปแบบคำถาม & คำตอบของเรา เราคาดหวังคำตอบที่จะได้รับการสนับสนุนจากข้อเท็จจริงการอ้างอิงหรือความเชี่ยวชาญ แต่คำถามนี้มีแนวโน้มที่จะเรียกร้องให้มีการอภิปรายโต้แย้งโต้แย้งหรือการอภิปรายเพิ่มเติม หากคุณรู้สึกว่าคำถามนี้สามารถปรับปรุงและเปิดใหม่ได้โปรดไปที่ศูนย์ช่วยเหลือเพื่อขอคำแนะนำ ปิดให้บริการใน8 ปีที่ผ่านมา คำตอบของคำถามนี้เป็นความพยายามของชุมชน แก้ไขคำตอบที่มีอยู่เพื่อปรับปรุงโพสต์นี้ ขณะนี้ไม่ยอมรับคำตอบหรือการโต้ตอบใหม่ ฉันไม่เข้าใจนิพจน์ทั่วไปจริงๆ คุณช่วยอธิบายพวกเขาให้ฉันฟังได้ง่ายๆ หากมีเครื่องมือหรือหนังสือออนไลน์คุณสามารถลิงก์ไปยังพวกเขาได้หรือไม่?
166 regex 

6
ฉันจะจับคู่สตริงกับ regex ใน Bash ได้อย่างไร
ฉันพยายามที่จะเขียนสคริปต์ทุบตีที่มีฟังก์ชั่นดังนั้นเมื่อได้รับ.tar, .tar.bz2, .tar.gzไฟล์อื่น ๆ จะใช้ tar กับสวิทช์ที่เกี่ยวข้องเพื่อขยายไฟล์ ฉันใช้ถ้า elif แล้วข้อความที่ทดสอบชื่อไฟล์เพื่อดูว่ามันลงท้ายด้วยและฉันไม่สามารถให้ตรงกับ metacharacters regex หากต้องการบันทึกการเขียนสคริปต์ใหม่อย่างต่อเนื่องที่ฉันใช้ 'ทดสอบ' ที่บรรทัดคำสั่งฉันคิดว่าคำสั่งด้านล่างควรใช้งานได้ฉันได้ลองใช้ชุดวงเล็บเครื่องหมายคำพูดและ metacharaters ทุกอย่างที่เป็นไปได้ แต่ก็ยังล้มเหลว test sed-4.2.2.tar.bz2 = tar\.bz2$; echo $? (this returns 1, false) ฉันแน่ใจว่าปัญหาเป็นเรื่องง่ายและฉันได้ดูทุกที่ แต่ฉันไม่สามารถเข้าใจได้ว่าจะทำอย่างไร มีใครรู้บ้างว่าฉันจะทำสิ่งนี้ได้อย่างไร
166 regex  string  bash 

11
นิพจน์ปกติเพื่อรับสตริงระหว่างสองสตริงใน Javascript
ฉันพบโพสต์ที่คล้ายกันมาก แต่ฉันไม่สามารถรับนิพจน์ปกติของฉันได้ที่นี่ ฉันพยายามเขียนนิพจน์ทั่วไปซึ่งส่งคืนสตริงซึ่งอยู่ระหว่างสองสตริงอื่น ตัวอย่างเช่นฉันต้องการรับสตริงที่อยู่ระหว่างสตริง "cow" และ "milk" วัวของฉันให้นมเสมอ จะกลับมา "ให้เสมอ" นี่คือการแสดงออกที่ฉันได้ปะติดปะต่อเข้าด้วยกัน: (?=cow).*(?=milk) อย่างไรก็ตามสิ่งนี้จะส่งคืนสตริง "ให้เสมอวัว"
166 javascript  regex  string 

9
Concrete Javascript Regex สำหรับอักขระเน้นเสียง (กำกับเสียง)
ผมมองในกองมากเกิน ( แทนที่ตัวอักษร .. เอ๊ะ , วิธี JavaScript ไม่เป็นไปตามมาตรฐาน Unicode เกี่ยวกับนิพจน์ทั่วไป , ฯลฯ ) และมีไม่ได้จริงๆพบคำตอบที่เป็นรูปธรรมเพื่อคำถาม: How can JavaScript match for accented characters (those with diacritical marks)? ฉันบังคับให้ฟิลด์ใน UI จับคู่รูปแบบ: last_name, first_name (สุดท้าย [คอมม่าสเปซ] ก่อน)และฉันต้องการให้การสนับสนุนนักกำกับเสียง แต่เห็นได้ชัดว่าใน JavaScript มันยากกว่าภาษา / แพลตฟอร์มอื่นเล็กน้อย นี่เป็นรุ่นดั้งเดิมของฉันจนกว่าฉันจะต้องการเพิ่มการสนับสนุนการออกเสียง: /^[a-zA-Z]+,\s[a-zA-Z]+$/ ขณะนี้ฉันกำลังถกเถียงกันหนึ่งในสามวิธีในการเพิ่มการสนับสนุนซึ่งทั้งหมดนี้ฉันได้ทดสอบและทำงาน (อย่างน้อยก็ระดับหนึ่งฉันไม่รู้จริงๆว่า "ขอบเขต" เป็นวิธีที่สอง) ที่นี่พวกเขาคือ: แสดงรายการอักขระเน้นเสียงทั้งหมดที่ฉันต้องการยอมรับว่าใช้ได้อย่างถูกต้อง (อ่อนแอและซับซ้อนเกินไป): var accentedCharacters …

14
คุณจะจับคู่เฉพาะตัวเลขโรมันที่ถูกต้องกับการแสดงออกปกติได้อย่างไร
เมื่อคิดถึงปัญหาอื่น ๆ ของฉันฉันตัดสินใจว่าฉันไม่สามารถสร้างนิพจน์ทั่วไปที่จะจับคู่กับตัวเลขโรมันได้ ปัญหาคือการจับคู่เฉพาะตัวเลขโรมันที่ถูกต้อง เช่น 990 ไม่ใช่ "XM" แต่เป็น "CMXC" ปัญหาของฉันในการสร้าง regex สำหรับเรื่องนี้คือเพื่อให้อนุญาตหรือไม่อนุญาตให้ใช้อักขระบางตัวฉันต้องมองย้อนกลับไป ตัวอย่างเช่นลองมาเป็นพัน ๆ ฉันสามารถอนุญาต M {0,2} C? M (อนุญาตสำหรับ 900, 1,000, 1900, 2000, 2900 และ 3000) อย่างไรก็ตามหากการแข่งขันอยู่บน CM ฉันไม่สามารถอนุญาตให้ตัวละครที่ตามมาเป็น C หรือ D ได้ (เพราะฉันอยู่ที่ 900) ฉันจะแสดงสิ่งนี้ใน regex ได้อย่างไร ถ้ามันไม่สามารถแสดงให้เห็นได้อย่างชัดเจนใน regex มันสามารถใช้ได้ในไวยากรณ์ที่ไม่มีบริบทหรือไม่?

3
จับคู่สตริงทั้งหมด
นิพจน์ทั่วไปคืออะไร (ใน JavaScript หากมีความสำคัญ) ที่จะจับคู่เฉพาะถ้าข้อความนั้นตรงทั้งหมด? นั่นคือไม่ควรมีอักขระพิเศษที่ปลายอีกด้านของสตริง ตัวอย่างเช่นถ้าฉันพยายามที่จะตรงกับabcแล้ว1abc1, 1abcและabc1จะไม่ตรงกับ
165 regex 

1
regex สำหรับการจับคู่บางอย่างหากไม่ได้นำหน้าอย่างอื่น
ดังนั้นด้วย regex ใน java ฉันต้องการเขียน regex ที่จะจับคู่หากและถ้ารูปแบบไม่ได้นำหน้าด้วยอักขระบางตัว ตัวอย่างเช่น: String s = "foobar barbar beachbar crowbar bar "; ฉันต้องการจับคู่หากแถบไม่ได้นำหน้าด้วย foo ดังนั้นผลลัพธ์จะเป็น: barbar beachbar crowbar bar ฉันรู้ว่านี่อาจเป็นคำถามง่าย ๆ ฉันกำลังพยายามเรียนรู้ regex แต่ในขณะเดียวกันฉันต้องการบางสิ่งบางอย่างเพื่อทำงาน
165 java  regex 

22
วิธีการแปลงชื่อเรื่องเป็นทาก URL ใน jQuery?
ฉันกำลังทำงานกับแอปใน CodeIgniter และฉันกำลังพยายามสร้างฟิลด์บนฟอร์มที่สร้าง URL แบบไดนามิก สิ่งที่ฉันต้องการจะทำคือลบเครื่องหมายวรรคตอนแปลงเป็นตัวพิมพ์เล็กและแทนที่ช่องว่างด้วยเครื่องหมายขีดคั่น ตัวอย่างเช่น Rib Shack ของ Shane จะกลายเป็น shane-rib-shack นี่คือสิ่งที่ฉันมี ส่วนตัวพิมพ์เล็กนั้นเป็นเรื่องง่าย แต่การเปลี่ยนไม่ได้ผลเลยและฉันก็ไม่ทราบว่าจะเอาเครื่องหมายวรรคตอนออก: $("#Restaurant_Name").keyup(function(){ var Text = $(this).val(); Text = Text.toLowerCase(); Text = Text.replace('/\s/g','-'); $("#Restaurant_Slug").val(Text); });
163 javascript  jquery  regex 

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

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