องค์ประกอบการเรียงมักจะอ้างอิงในบริบทของการเรียงลำดับ
ในหลายภาษาการเรียง (การเรียงลำดับเหมือนในพจนานุกรม) ไม่เพียง แต่ทำต่อตัวอักษรเท่านั้น ตัวอย่างเช่นในภาษาเช็กchไม่ได้เรียงลำดับcgและciชอบในภาษาอังกฤษ แต่ถือเป็นการเรียงลำดับโดยรวม มันเป็นองค์ประกอบเรียง (เราสามารถได้หมายถึงตัวละครที่นี่ตัวละครที่เป็นส่วนหนึ่งขององค์ประกอบเรียง) ที่ทุกประเภทในระหว่างและhi
ตอนนี้คุณอาจถามว่าสิ่งที่เกี่ยวข้องกับการแสดงออกปกติ? , ทำไมฉันจะต้องการที่จะอ้างถึงองค์ประกอบเรียงในการแสดงออกวงเล็บ? .
ภายในนิพจน์วงเล็บเหลี่ยมเราใช้คำสั่ง ยกตัวอย่างเช่นใน[c-j]คุณต้องการให้ตัวละครในระหว่างและc jคุณล่ะ คุณต้องการให้เรียงองค์ประกอบที่นั่น [h-i]ในการแข่งขันภาษาเช็กch:
$ echo cho | LC_ALL=cs_CZ.UTF-8 grep '^[h-i]o'
cho
ดังนั้นหากคุณสามารถแสดงช่วงขององค์ประกอบการเรียงในนิพจน์วงเล็บปีกกาคุณก็คาดหวังว่าจะสามารถแสดงรายการองค์ประกอบเหล่านั้นทีละรายการได้เช่นกัน [a-cch]จะตรงกับว่าองค์ประกอบเรียงในระหว่างaและcและcและhตัวอักษร ในการมีa-cและchอิลิเมนต์การเรียงเราต้องการไวยากรณ์ใหม่:
$ echo cho | LC_ALL=cs_CZ.UTF-8 grep '^[a-c[.ch.]]o'
cho
(คนในระหว่างaและcและchหนึ่ง)
ตอนนี้โลกยังไม่สมบูรณ์แบบและอาจจะไม่เคย ตัวอย่างข้างต้นเป็นในระบบ GNU และทำงานได้ ตัวอย่างของอีกองค์ประกอบเรียงอาจจะeด้วยสำเนียงเฉียบพลันรวม UTF-8 ( $'e\u0301'แสดงผลเหมือน$'\u00e9'เป็นé)
éและéเป็นตัวละครเดียวกันยกเว้นตัวหนึ่งจะถูกแทนด้วยตัวละครตัวหนึ่งและอีกตัวที่มีสองตัว
$ echo $'e\u301t\ue9' | grep '^[d-f]t'
จะทำงานได้อย่างถูกต้องในบางระบบ แต่ไม่ใช่ระบบอื่น (ไม่ใช่ GNU เป็นต้น) และมันก็ไม่มีความชัดเจนว่า$'[[.\ue9.]]'ควรจะตรงเท่านั้น$'\ue9'หรือทั้งสองอย่างและ$'\ue9'$'e\u301'
ไม่พูดถึงสคริปต์ที่ไม่ใช่ตัวอักษรหรือสคริปต์ที่มีคำสั่งเรียงลำดับภูมิภาคการเรียงลำดับสิ่งต่าง ๆ เช่น ffi ( ffiในอักขระหนึ่งตัว) ซึ่งกลายเป็นเรื่องยุ่งยากในการจัดการกับ API อย่างง่าย
chคือตัวละครสองตัวที่แตกต่างกัน มันเป็นเพียงหนึ่งเพื่อวัตถุประสงค์ในการจัดเรียง คุณแน่ใจว่า "digraph" เป็นคำที่เหมาะสมหรือไม่