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

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

13
ฉันจะแทนที่ช่องว่างด้วยการขีดเส้นใต้และในทางกลับกันได้อย่างไร
ฉันต้องการแทนที่ช่องว่างด้วยการขีดเส้นใต้ในสตริงเพื่อสร้าง URL ที่ดี ตัวอย่างเช่น: "This should be connected" becomes "This_should_be_connected" ฉันใช้ Python กับ Django สิ่งนี้สามารถแก้ไขได้ด้วยการแสดงออกปกติ?
221 python  regex  django 

5
ตัวดำเนินการ AND / OR แสดงในนิพจน์ปกติอย่างไร
ฉันกำลังเขียนโปรแกรมอัลกอริทึมคำศัพท์ที่ตรวจสอบว่าผู้ใช้พิมพ์คำถูกต้องหรือไม่ ฉันมีสถานการณ์ต่อไปนี้: ทางออกที่ถูกต้องสำหรับคำว่า "part1, part2" ผู้ใช้ควรป้อน "part1" (คำตอบ 1), "part2" (คำตอบ 2) หรือ "part1, part2" (คำตอบ 3) ตอนนี้ฉันพยายามจับคู่สตริงที่กำหนดโดยผู้ใช้กับนิพจน์ regex ที่สร้างขึ้นโดยอัตโนมัติ: ^(part1|part2)$ สิ่งนี้จะส่งกลับคำตอบที่ 1 และ 2 เท่านั้นว่าถูกต้องในขณะที่คำตอบ 3 จะผิด ตอนนี้ฉันสงสัยว่ามีตัวดำเนินการคล้ายกับ | หรือไม่ ที่บอกว่าแทนand/oreither...or ใครช่วยฉันแก้ปัญหานี้ได้บ้าง
220 regex  operators 

6
Regex แทนที่ตัวพิมพ์ใหญ่ด้วยอักษรตัวพิมพ์เล็ก
ฉันพยายามแทนที่ตัวอักษรตัวพิมพ์ใหญ่ด้วยตัวพิมพ์เล็กที่สอดคล้องกันโดยใช้ regex ดังนั้น EarTH: 1, MerCury: 0.2408467, venuS: 0.61519726, กลายเป็น earth: 1, mercury: 0.2408467, venus: 0.61519726, ในข้อความประเสริฐ ฉันจะลดขนาดตัวอักษรในคำที่มีทั้งตัวอักษรพิมพ์เล็กและใหญ่ได้อย่างไร เพื่อที่จะส่งผลกระทบต่อและไม่ได้venUsVENUS

10
จะใช้ตัวเลือก '-prune' ของ 'find' in sh ได้อย่างไร?
ฉันไม่เข้าใจตัวอย่างที่ได้รับจากman findใครทุกคนสามารถยกตัวอย่างและคำอธิบายให้ฉันได้บ้าง ฉันสามารถรวมการแสดงออกปกติในนั้นได้หรือไม่? คำถามที่มีรายละเอียดมากขึ้นเป็นเช่นนี้: เขียนเชลล์สคริปต์changeallซึ่งมีอินเตอร์เฟสเหมือนchangeall [-r|-R] "string1" "string2"กัน ก็จะพบไฟล์ทั้งหมดที่มีคำต่อท้ายของ.h, .C, .ccหรือ.cppและการเปลี่ยนแปลงที่เกิดขึ้นทั้งหมดให้กับstring1 เป็นตัวเลือกสำหรับการพักใน dir ปัจจุบันเท่านั้นหรือรวมถึง subdir'sstring2-r บันทึก: สำหรับกรณีที่ไม่ซ้ำlsไม่ได้รับอนุญาตเท่านั้นที่เราสามารถใช้และfindsed ฉันพยายามแล้วfind -depthแต่ไม่รองรับ นั่นเป็นเหตุผลที่ผมสงสัยว่าถ้า-pruneจะช่วย man findแต่ไม่เข้าใจตัวอย่างจาก แก้ไข 2: ฉันทำงานที่ได้รับมอบหมายฉันไม่ได้ถามคำถามอย่างละเอียดเพราะฉันต้องการทำมันให้เสร็จ ตั้งแต่ฉันทำไปแล้วส่งตอนนี้ฉันสามารถตอบคำถามทั้งหมดได้ นอกจากนี้ฉันจัดการจนเสร็จสิ้นการมอบหมายโดยไม่ใช้-pruneแต่ต้องการเรียนรู้ต่อไป
219 regex  shell  find  manual 


21
จับคู่สองสตริงในหนึ่งบรรทัดด้วย grep
ฉันพยายามใช้grepเพื่อจับคู่บรรทัดที่มีสองสตริงที่แตกต่างกัน ฉันลองต่อไปนี้ แต่ตรงกับบรรทัดที่มีทั้งstring1 หรือ string2ซึ่งไม่ใช่สิ่งที่ฉันต้องการ grep 'string1\|string2' filename ดังนั้นฉันจะจับคู่กับgrepบรรทัดที่มีทั้งสองสตริงได้อย่างไร
218 regex  linux  string  grep 

11
JavaScript + Unicode regexes
ฉันจะใช้นิพจน์ปกติที่รับรู้ Unicode ใน JavaScript ได้อย่างไร ตัวอย่างเช่นควรมีบางสิ่งที่คล้ายกับ\wที่สามารถจับคู่จุดรหัสใด ๆ ในหมวดหมู่จดหมายหรือเครื่องหมาย (ไม่ใช่แค่ ASCII) และหวังว่าจะมีตัวกรองเช่น [[P *]] สำหรับเครื่องหมายวรรคตอน ฯลฯ

30
การตรวจสอบอีเมล Regex
ฉันใช้สิ่งนี้ @"^([\w\.\-]+)@([\w\-]+)((\.(\w){2,3})+)$" regexp เพื่อตรวจสอบอีเมล ([\w\.\-]+)- สิ่งนี้มีไว้สำหรับโดเมนระดับแรก (ตัวอักษรและตัวเลขจำนวนมากรวมถึงจุดและยัติภังค์) ([\w\-]+)- สำหรับโดเมนระดับที่สอง ((\.(\w){2,3})+)- และสำหรับโดเมนระดับอื่น (จาก 3 ถึงอินฟินิตี้) ซึ่งรวมถึงจุดและ 2 หรือ 3 ตัวอักษร เกิดอะไรขึ้นกับ regex นี้ แก้ไข: มันไม่ตรงกับอีเมล "something@someth.ing"
215 c#  regex  validation 

18
String.indexOf () ของ JavaScript มีเวอร์ชันที่อนุญาตให้มีการแสดงออกปกติหรือไม่
ใน javascript มีค่าเทียบเท่ากับ String.indexOf () ที่ใช้นิพจน์ปกติแทนสตริงสำหรับพารามิเตอร์แรกตัวแรกในขณะที่ยังอนุญาตพารามิเตอร์ที่สองอยู่หรือไม่ ฉันต้องทำอะไรซักอย่าง str.indexOf(/[abc]/ , i); และ str.lastIndexOf(/[abc]/ , i); ในขณะที่ String.search () รับ regexp เป็นพารามิเตอร์มันไม่อนุญาตให้ฉันระบุอาร์กิวเมนต์ที่สอง! แก้ไข: สิ่งนี้กลายเป็นหนักกว่าที่ฉันคิดไว้ในตอนแรกดังนั้นฉันจึงเขียนฟังก์ชันทดสอบขนาดเล็กเพื่อทดสอบวิธีแก้ปัญหาที่ให้ไว้ทั้งหมด ... มันจะถือว่า regexIndexOf และ regexLastIndexOf ถูกเพิ่มลงในวัตถุ String function test (str) { var i = str.length +2; while (i--) { if (str.indexOf('a',i) != str.regexIndexOf(/a/,i)) alert (['failed regexIndexOf ' , …

16
แทนที่สตริงหลายรายการด้วยสตริงอื่นหลายรายการ
ฉันพยายามแทนที่คำหลายคำในสตริงด้วยคำอื่น ๆ สตริงคือ "ฉันมีแมวสุนัขและแพะ" อย่างไรก็ตามสิ่งนี้ไม่ได้ผลิต "ฉันมีสุนัขแพะและแมว" แต่มันกลับสร้าง "ฉันมีแมวแมวและแมว" เป็นไปได้หรือไม่ที่จะแทนที่สตริงหลายรายการด้วยสตริงอื่น ๆ หลายรายการในเวลาเดียวกันใน JavaScript เพื่อให้ได้ผลลัพธ์ที่ถูกต้อง? var str = "I have a cat, a dog, and a goat."; str = str.replace(/cat/gi, "dog"); str = str.replace(/dog/gi, "goat"); str = str.replace(/goat/gi, "cat"); //this produces "I have a cat, a cat, and a cat" //but I …

22
เหตุใดนิพจน์ทั่วไปจึงแย้งกัน [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน6 ปีที่ผ่านมา ปรับปรุงคำถามนี้ เมื่อสำรวจนิพจน์ทั่วไป (หรือที่รู้จักกันในชื่อ RegEx-es) มีบุคคลหลายคนที่ดูเหมือนจะเห็นนิพจน์ทั่วไปเป็นโฮลี่เกรล บางสิ่งที่ดูซับซ้อนมาก - ต้องเป็นคำตอบสำหรับคำถามใด ๆ พวกเขามักจะคิดว่าทุกปัญหาสามารถแก้ไขได้โดยใช้นิพจน์ทั่วไป ในทางกลับกันก็มีหลายคนที่พยายามหลีกเลี่ยงการแสดงออกปกติที่ค่าใช้จ่ายทั้งหมด พวกเขาพยายามหาวิธีแก้ไขนิพจน์ทั่วไปและยอมรับการเข้ารหัสเพิ่มเติมเพื่อประโยชน์ของมันแม้ว่านิพจน์ทั่วไปจะเป็นโซลูชันที่กระชับกว่า เหตุใดนิพจน์ทั่วไปจึงถูกพิจารณาว่ามีความขัดแย้งกัน มีความเข้าใจผิดเกี่ยวกับวิธีการทำงานอย่างกว้างขวางหรือไม่ หรือเป็นความเชื่อที่กว้างขวางว่าการแสดงออกปกติโดยทั่วไปช้าหรือไม่
212 regex 

6
VSCode regex ค้นหาและแทนที่คณิตศาสตร์ที่ส่งหรือไม่
%s@{fileID: \(213[0-9]*\)@\='{fileID: '.(submatch(1)-1900)@ ฉันใช้การค้นหา regex นี้และแทนที่คำสั่งในกลุ่มเพื่อลบค่าคงที่จากแต่ละ id ที่ตรงกัน ฉันสามารถค้นหา regex ใน VSCode ได้ แต่ฉันจะอ้างอิงsubmatchคณิตศาสตร์และแทนที่ได้อย่างไร submatch(1)ไม่ทำงานใน VSCode? ขอบคุณ

7
วิธีจับคู่ แต่ไม่จับภาพเป็นส่วนหนึ่งของ regex หรือไม่
ฉันมีรายการสตริง 123-...456บางคนก็มีของแบบฟอร์ม ส่วนตัวแปร "... " อาจเป็น: สตริง "apple" ตามด้วยยัติภังค์เช่น 123-apple-456 สตริง "Banana" ตามด้วยยัติภังค์เช่น 123-banana-456 สตริงว่างเช่น123-456(โปรดสังเกตว่ามีเครื่องหมายขีดคั่นอยู่หนึ่งอัน) คำอื่นที่ไม่ใช่ "apple" หรือ "Banana" นั้นไม่ถูกต้อง สำหรับทั้งสามกรณีนี้ฉันต้องการจับคู่ "apple", "Banana" และ "" ตามลำดับ โปรดทราบว่าฉันไม่ต้องการจับภาพยัติภังค์ แต่ฉันต้องการจับคู่เสมอ หากสตริงนั้นไม่ใช่แบบฟอร์ม123-...456ตามที่อธิบายไว้ข้างต้นแสดงว่าไม่มีการจับคู่เลย ฉันจะเขียนนิพจน์ทั่วไปเพื่อทำสิ่งนี้ได้อย่างไร สมมติว่าฉันมีรสชาติที่อนุญาตให้กลุ่ม lookahead, lookbehind, lookaround และกลุ่มที่ไม่ถูกจับ ข้อสังเกตสำคัญที่นี่คือเมื่อคุณมี "แอปเปิล" หรือ "กล้วย" คุณต้องมียัติภังค์ต่อท้าย แต่คุณไม่ต้องการจับคู่ และเมื่อคุณจับคู่สตริงว่างคุณต้องไม่มีเครื่องหมายขีดคั่นต่อท้าย ฉันคิดว่า regex ที่ห่อหุ้มคำยืนยันนี้จะเป็นสิ่งที่ถูกต้อง
209 regex 

21
คุณใช้ตัวกรองคำหยาบที่ดีได้อย่างไร
พวกเราหลายคนต้องจัดการกับการป้อนข้อมูลของผู้ใช้แบบสอบถามการค้นหาและสถานการณ์ที่ข้อความที่ป้อนอาจมีความหยาบคายหรือภาษาที่ไม่พึงประสงค์ บ่อยครั้งสิ่งนี้จะต้องถูกกรองออก จะพบรายการคำสาบานที่ดีในภาษาและภาษาถิ่นต่าง ๆ ได้ที่ไหน มีแหล่ง API ที่มีรายการที่ดีหรือไม่ หรือบางที API ที่บอกว่า "ใช่นี่สะอาด" หรือ "ไม่นี่สกปรก" ด้วยพารามิเตอร์บางอย่าง? มีวิธีใดที่ดีในการดึงดูดผู้คนที่พยายามจะหลอกลวงระบบเช่น $$, azz หรือ a55? คะแนนโบนัสหากคุณเสนอโซลูชันสำหรับ PHP :) แก้ไข: การตอบสนองต่อคำตอบที่บอกว่าหลีกเลี่ยงปัญหาการเขียนโปรแกรม: ฉันคิดว่ามีสถานที่สำหรับตัวกรองชนิดนี้เมื่อผู้ใช้สามารถใช้การค้นหารูปภาพสาธารณะเพื่อค้นหารูปภาพที่เพิ่มลงในกลุ่มชุมชนที่ละเอียดอ่อน หากพวกเขาสามารถค้นหา "องคชาต" พวกเขาก็น่าจะได้ภาพจำนวนมาก หากเราไม่ต้องการรูปภาพของสิ่งนั้นการป้องกันคำว่าเป็นข้อความค้นหานั้นเป็นผู้รักษาประตูที่ดีแม้ว่าจะยอมรับว่าไม่ใช่วิธีที่เข้าใจผิด การรับรายการคำศัพท์ตั้งแต่แรกคือคำถามจริง ดังนั้นฉันหมายถึงวิธีการคิดออกโทเค็นเดียวสกปรกหรือไม่และจากนั้นก็ไม่อนุญาต ฉันจะไม่รบกวนการป้องกันความรู้สึกเช่นการอ้างอิง "ยีราฟคอยาว" เฮฮาโดยสิ้นเชิง คุณไม่สามารถทำอะไรได้ที่นั่น :)
208 php  regex  user-input 

15
ลบช่องว่างหลายช่อง
ฉันได้รับ$row['message']จากฐานข้อมูล MySQL และฉันต้องการลบช่องว่างทั้งหมดเช่น\n \tนั้น $row['message'] = "This is a Text \n and so on \t Text text."; ควรจัดรูปแบบเป็น: $row['message'] = 'This is a Text and so on Text text.'; ฉันเหนื่อย: $ro = preg_replace('/\s\s+/', ' ',$row['message']); echo $ro; แต่มันไม่ได้ลบ\nหรือ\tเพียงแค่ช่องว่างเดียว ใครสามารถบอกฉันว่าจะทำเช่นนั้นได้อย่างไร

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