ฉันตัดสินใจที่จะเรียนรู้พื้นฐานการแสดงออกปกติ ฉันใช้บทเรียน Regex One ออนไลน์และฉันติดอยู่ที่lession 11อยู่พักหนึ่ง แต่ฉันคิดว่าฉันได้รับแล้ว
นี่คือภารกิจ
"เขียนนิพจน์ทั่วไปที่ตรงกับชื่อไฟล์ (ไม่รวมนามสกุล) ของไฟล์ PDF ด้านล่าง"
task text capture
capture text file_a_record_file.pdf file_a_record_file
capture text file_yesterday.pdf file_yesterday
skip text testfile_fake.pdf.tmp
มีฟิลด์อินพุตที่คุณพิมพ์ในรูปแบบเพื่อทำงานให้เสร็จสมบูรณ์ หลังจากการทดลองและข้อผิดพลาดบางอย่างนี่คือสิ่งที่ฉันคิดขึ้นมา
^(file_a_record_file)\.pdf$
นี้จะตรงกับชื่อแฟ้มfile_a_record_file.pdfแต่เพียง "จับ" file_a_record_file ความแตกต่างคืออะไร ... ระหว่างการจับคู่และ "การจับภาพ" และมีประโยชน์อย่างไร? "การจับคู่กลุ่ม" เป็นอย่างไร
ตอนนี้ใช้ได้สำหรับไฟล์แรก แต่ไม่ใช่สำหรับไฟล์ที่สอง ภารกิจบอกว่าฉันต้องสร้างรูปแบบที่จะจับคู่และจับชื่อไฟล์ของทั้งสองไฟล์โดยไม่รวมนามสกุล ดังนั้นนี่คือสิ่งที่ฉันมาต่อไป
^(file_.*)\.pdf$
เนื่องจากชื่อไฟล์ทั้งสองเริ่มต้นด้วยfile_ฉันคิดว่ามันเป็นความคิดที่ดีที่จะจับคู่กับมันแล้วบอกให้ตรงกับอักขระใด ๆ ที่ตามมาจากนั้นออกจากกลุ่มด้วยวงเล็บ ("กลุ่ม" คือสิ่งที่อยู่ในวงเล็บขวา ?) และหลีกเลี่ยงจุดด้วยแบ็กสแลชและจบด้วยนามสกุลไฟล์
สิ่งนี้สามารถอธิบายได้ในทางที่เข้มงวดมากขึ้นหรือไม่? การแก้ปัญหาที่ถูกต้องจะไม่ได้รับในเว็บไซต์ ดังนั้นฉันไม่มีอะไรที่จะตรวจสอบคำตอบของฉันกับ มันน่าเสียดายเพราะฉันคิดว่านี่เป็นการแนะนำเบื้องต้นเกี่ยวกับการแสดงออกปกติ ตัวอย่างที่ให้ไว้สำหรับแต่ละบทเรียนนั้นบางครั้งยากที่จะเข้าใจ
และอีกครั้งสิ่งนี้มีประโยชน์อย่างไร เขากล่าวถึงบางสิ่งบางอย่างเกี่ยวกับบรรทัดคำสั่งฉันคิดว่าเขาหมายความว่ามันสามารถใช้เพื่อใช้คำสั่งอีกครั้งหรือบางสิ่งบางอย่าง ... ดีฉันไม่เข้าใจในสิ่งที่เขาพูด
ลองนึกภาพว่าเรามีเครื่องมือบรรทัดคำสั่งที่คัดลอกแต่ละไฟล์ในไดเรกทอรีไปยังเซิร์ฟเวอร์เฉพาะถ้ามันไม่มีอยู่แล้วและพิมพ์แต่ละชื่อไฟล์เป็นผล ตอนนี้ถ้าฉันต้องการทำงานอื่นในชื่อไฟล์แต่ละไฟล์ฉันไม่เพียง แต่ต้องการนิพจน์ทั่วไปที่จะตรงกับชื่อไฟล์เท่านั้น แต่ยังมีวิธีดึงข้อมูลบางอย่างออกมาด้วย
แยกข้อมูลหรือไม่ เขากำลังพูดถึงอะไร ใครช่วยบอกฉันทีว่ามันมีประโยชน์และยกตัวอย่างโลกแห่งความจริงให้ฉันได้ไหม