วันเสาร์ที่ 5 กรกฎาคม พ.ศ. 2568

การเขียน Regular Expression ตรวจจับตัวอักษรภาษาจีน

ตอนทำไฟล์ ePUB แล้วตัวอักษรภาษาจีนมักจะใหญ่กว่าตัวอักษรไทย เวลาที่ทำหนังสือที่มีอักษรภาษาจีนอยู่ด้วย ถ้าอยากให้ตัวเล็กเท่ากับตัวหนังสือภาษาไทยอื่นๆ ในเล่ม ก็จะใส่ span ครอบไว้ว่าเป็นตัวจีน

แต่ถ้ามีตัวอักษรจีนแทรกอยู่ประปราย จะมานั่งใส่ด้วยมือก็เสียเวลาไม่น้อย ซึ่งใน Sigil ก็สามารถสั่งค้นหาแทนที่จาก Regular Expression ได้

วิธีการคือสั่งค้นหา

/([\x{4e00}-\x{9fff}]+)/u

ถ้าเป็น Sigil ไม่ต้องใส่ // ครอบ คือใช้เป็น

([\x{4e00}-\x{9fff}]+)

แล้วแทนที่ด้วย <span class="">\1</span> หรือ <span class="">$1</span>

แต่ text editor บางตัว จะมีฟังก์ชัน Regular Expression ไม่ครบ (เช่น VS Code, Sublime, Notepad++, Atom) ก็สั่งค้นหาด้วย

[\u4e00-\u9fff]+

หรือ Sublime บางเวอร์ชัน สามารถสั่งค้นด้วย

\p{Han}+