ฉันเพิ่งได้เป็นข้อโต้แย้งที่เป็นมิตรกับGhotiเกี่ยวกับสิ่งที่ถือว่าเป็นนิพจน์ปกติในการแสดงความคิดเห็นเพื่อคำตอบของฉันนี้คำถาม ฉันอ้างว่าต่อไปนี้เป็นนิพจน์ทั่วไป:
`[Rr]eading[Tt]est[Dd]ata`
Ghoti ไม่เห็นด้วยอ้างว่าเป็นไฟล์ glob แทน globหน้าในการเรียกร้องที่วิกิพีเดีย (เหมืองเน้น):
Globs ไม่รวมไวยากรณ์สำหรับดาว Kleene ซึ่งอนุญาตการทำซ้ำหลายส่วนในส่วนก่อนหน้าของนิพจน์ ดังนั้นพวกเขาจึงไม่ถือว่าเป็นสำนวนปกติซึ่งสามารถอธิบายชุดของภาษาปกติที่มีขนาดใหญ่กว่าตัวอักษรที่ จำกัด ใด ๆ
อย่างไรก็ตามไม่มีการอ้างอิงสำหรับการอ้างสิทธิ์นี้ซึ่งระบุว่าเป็นเพียงความคิดเห็นของวิกิพีเดีย
เดี่ยวยูนิกซ์®ข้อมูลจำเพาะ, รุ่นที่ 2กล่าวว่าพื้นฐานนิพจน์ปกติ (BRE) สามารถแม้แต่จะเป็นตัวเดียว:
อักขระทั่วไปคือ BRE ที่ตรงกับตัวเอง: อักขระใด ๆ ในชุดอักขระที่สนับสนุนยกเว้นอักขระพิเศษ BRE ที่แสดงรายการในอักขระพิเศษ BRE
ดังนั้นคำจำกัดความของการแสดงออกปกติในโลก * คืออะไรและคำจำกัดความที่ไม่รวมไฟล์ globs?
*
มีความหมายที่แตกต่างกันสองรายการใน BRE และ globs หมายเหตุ: ฉันไม่คิดว่าคำว่าglobถูกใช้ที่ใดก็ได้ในข้อมูลจำเพาะ POSIX - เรียกว่าการจับคู่รูปแบบแทนและอธิบายไว้ในบทภาษาของเชลล์
grep
, และsed
awk
Vim ใช้ความหลากหลายของตัวเองเช่นเดียวกับ Perl