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


8
ฉันจะทำให้การแข่งขันไม่ใช่ความโลภเป็นกลุ่มได้อย่างไร?
ฉันมีไฟล์ HTML ขนาดใหญ่ที่มีมาร์กอัปมากมายซึ่งมีลักษณะดังนี้: <p class="MsoNormal" style="margin: 0in 0in 0pt;"> <span style="font-size: small; font-family: Times New Roman;">stuff here</span> </p> ฉันกำลังพยายามค้นหาและแทนที่เป็นกลุ่มเพื่อกำจัดทุกอย่างclass=""และstyle=""แต่ฉันมีปัญหาในการทำให้การแข่งขันไม่ดี ความพยายามครั้งแรกของฉันคือสิ่งนี้ %s/style=".*?"//g แต่เสียงเรียกเข้าไม่เหมือน?กัน น่าเสียดายที่การลบ?ทำให้การแข่งขันโลภเกินไป ฉันจะทำให้การจับคู่ของฉันไม่มีความสุขได้อย่างไร
479 regex  vim  regex-greedy 

21
การจับคู่ regex ไม่โลภ (ลังเล) ใน sed หรือไม่
ฉันพยายามใช้ sed เพื่อล้างบรรทัด URL เพื่อแยกโดเมนออก ดังนั้นจาก: http://www.suepearson.co.uk/product/174/71/3816/ ฉันต้องการ: http://www.suepearson.co.uk/ (ไม่ว่าจะมีหรือไม่มีเครื่องหมายทับท้ายก็ไม่สำคัญ) ฉันเหนื่อย: sed 's|\(http:\/\/.*?\/\).*|\1|' และ (หนีออกมาจากปริมาณที่ไม่โลภ) sed 's|\(http:\/\/.*\?\/\).*|\1|' แต่ดูเหมือนว่าฉันจะไม่สามารถให้ quantifier ที่ไม่โลภ ( ?) ทำงานดังนั้นมันจะจับคู่สตริงทั้งหมดเสมอ
406 regex  sed  pcre  greedy  regex-greedy 

7
ปริมาณที่โลภเทียบกับความลังเลเทียบกับความเป็นเจ้าของ
ฉันพบบทช่วยสอนที่ยอดเยี่ยมเกี่ยวกับการแสดงออกปกติและในขณะที่ฉันเข้าใจอย่างหยั่งรู้ในสิ่งที่ "โลภ", "ลังเล" และ "ความเป็นเจ้าของ" ตัวบ่งชี้ทำดูเหมือนว่าจะมีช่องโหว่ร้ายแรงในความเข้าใจของฉัน โดยเฉพาะในตัวอย่างต่อไปนี้: Enter your regex: .*foo // greedy quantifier Enter input string to search: xfooxxxxxxfoo I found the text "xfooxxxxxxfoo" starting at index 0 and ending at index 13. Enter your regex: .*?foo // reluctant quantifier Enter input string to search: xfooxxxxxxfoo I found the …

3
วิธีที่จะทำให้การแสดงออกปกติเป็นไม่โลภ?
ฉันใช้ jQuery ฉันมีสตริงที่มีบล็อกของอักขระพิเศษ (เริ่มต้นและสิ้นสุด) ฉันต้องการรับข้อความจากบล็อกอักขระพิเศษนั้น ฉันใช้วัตถุนิพจน์ปกติสำหรับการค้นหาในสตริง แต่ฉันจะบอก jQuery ให้ค้นหาผลลัพธ์หลายรายการได้อย่างไรเมื่อมีอักขระพิเศษสองตัวขึ้นไป HTML ของฉัน: <div id="container"> <div id="textcontainer"> Cuộc chiến pháp lý giữa [|cơ thử|nghiệm|] thị trường [|test2|đây là test lần 2|] chứng khoán [|Mỹ|day la nuoc my|] và ngân hàng đầu tư quyền lực nhất Phố Wall mới chỉ bắt đầu. </div> …


7
Python regexes ที่ไม่โลภ
ฉันจะทำให้ python regex เป็น"(.*)"เช่นนั้นได้อย่างไรจากการ"a (b) c (d) e"จับคู่ python "b"แทน"b) c (d" ฉันรู้ว่าฉันสามารถใช้"[^)]"แทนได้"."แต่ฉันกำลังมองหาโซลูชันทั่วไปที่ทำให้ regex ของฉันสะอาดขึ้นเล็กน้อย มีวิธีใดที่จะบอกงูหลามว่า "เฮ้จับคู่มันให้เร็วที่สุด"

3
อะไรคือความแตกต่างระหว่าง .*? และ. * นิพจน์ทั่วไป
ฉันพยายามแบ่งสตริงออกเป็นสองส่วนโดยใช้ regex สตริงถูกจัดรูปแบบดังนี้: text to extract<number> ฉันเคยใช้(.*?)<และใช้<(.*?)>งานได้ดี แต่หลังจากอ่านเป็น regex เล็กน้อยฉันเพิ่งเริ่มสงสัยว่าทำไมฉันต้องการ?ในการแสดงออก ฉันเพิ่งทำแบบนั้นหลังจากพบพวกเขาผ่านเว็บไซต์นี้ดังนั้นฉันไม่แน่ใจว่าสิ่งที่แตกต่างคืออะไร

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