https://github.com/kkos/oniguruma
Oniguruma เป็นไลบรารีนิพจน์ทั่วไปที่ทันสมัยและยืดหยุ่น โดยครอบคลุมคุณลักษณะต่างๆ จากการใช้งานนิพจน์ทั่วไปที่แตกต่างกันซึ่งโดยปกติแล้วจะมีอยู่ในภาษาต่างๆ
การเข้ารหัสอักขระสามารถระบุได้ต่อออบเจ็กต์นิพจน์ทั่วไป
การเข้ารหัสอักขระที่รองรับ:
ASCII, UTF-8, UTF-16BE, UTF-16LE, UTF-32BE, UTF-32LE, EUC-JP, EUC-TW, EUC-KR, EUC-CN, Shift_JIS, Big5, GB18030, KOI8-R, CP1251, ISO-8859-1, ISO-8859-2, ISO-8859-3, ISO-8859-4, ISO-8859-5, ISO-8859-6, ISO-8859-7, ISO-8859-8, ISO-8859-9, ISO-8859-10, ISO-8859-11, ISO- 8859-13, ISO-8859-14, ISO-8859-15, ISO-8859-16
เมื่อใช้สคริปต์กำหนดค่า หากคุณเปิดใช้งาน POSIX API ในเวอร์ชันก่อนหน้า (ปิดใช้งานโดยค่าเริ่มต้นใน 6.9.5) และคุณต้องการความเข้ากันได้แบบไบนารีของแอปพลิเคชันกับ POSIX API ให้ระบุ "--enable-binary-เข้ากันได้กับ-posix-api= ใช่" แทนที่จะเป็น "--enable-posix-api=yes" ตั้งแต่เวอร์ชัน 6.9.6 เป็นต้นไป "--enable-posix-api=yes" รองรับเฉพาะความเข้ากันได้ระดับแหล่งที่มาสำหรับ 6.9.5 และเวอร์ชันก่อนหน้าเกี่ยวกับ POSIX API (ฉบับที่ #210)
ใบอนุญาตบีเอสดี
dnf install oniguruma-develyum install onigurumaapt install libonig5pacman -S onigurumazypper install onigurumaautoreconf -vfi (* กรณี: ไม่พบสคริปต์กำหนดค่า)
./กำหนดค่า
ทำ
ทำการติดตั้ง
ถอนการติดตั้ง
ทำการถอนการติดตั้ง
ตรวจสอบการกำหนดค่า
onig-config --cflags onig-config --libs onig-config --คำนำหน้า onig-config --exec-คำนำหน้า
สร้างห้องสมุด
.make_win.bat
onig_s.lib: ไลบรารีลิงก์แบบคงที่ onig.dll: ไลบรารีลิงก์แบบไดนามิก
ทำโปรแกรมทดสอบ
.make_win.bat การทดสอบทั้งหมด
หรือคุณสามารถสร้างและติดตั้ง oniguruma โดยใช้ vcpkg dependency manager:
พอร์ต oniguruma ใน vcpkg ได้รับการปรับปรุงให้ทันสมัยโดยสมาชิกทีม Microsoft และผู้ร่วมให้ข้อมูลในชุมชน หากเวอร์ชันล้าสมัย โปรดสร้างปัญหาหรือดึงคำขอบนที่เก็บ vcpkg
ดู doc/RE หรือ doc/RE.ja สำหรับภาษาญี่ปุ่น
รวม oniguruma.h ไว้ในโปรแกรมของคุณ (Oniguruma API) ดูเอกสาร/API สำหรับ Oniguruma API
หากคุณต้องการปิดใช้งานคำจำกัดความประเภท UChar (== อักขระที่ไม่ได้ลงนาม) ใน oniguruma.h ให้กำหนด ONIG_ESCAPE_UCHAR_COLLISION แล้วรวม oniguruma.h
หากคุณต้องการปิดใช้งานคำจำกัดความประเภท regex_t ใน oniguruma.h ให้กำหนด ONIG_ESCAPE_REGEX_T_COLLISION แล้วรวม oniguruma.h
ตัวอย่างบรรทัดคำสั่งการคอมไพล์/ลิงก์ใน Unix หรือ Cygwin (คำนำหน้า == /usr/local case)
cc sample.c -L/usr/local/lib -lonig
หากคุณต้องการใช้ไลบรารีลิงก์แบบคงที่ (onig_s.lib) ใน Win32 ให้เพิ่มตัวเลือก -DONIG_EXTERNA=extern ให้กับคอมไพเลอร์ C
| ไฟล์ | คำอธิบาย |
|---|---|
| ตัวอย่าง/callout.c | ตัวอย่างคำบรรยายภาพ |
| ตัวอย่าง/จำนวนc | ตัวอย่างของคำบรรยายภาพในตัว *COUNT |
| ตัวอย่าง/echo.c | ตัวอย่างการเรียกชื่อที่ผู้ใช้กำหนด |
| ตัวอย่าง/encode.c | ตัวอย่างการเข้ารหัสบางส่วน |
| ตัวอย่าง/listcap.c | ตัวอย่างประวัติการจับกุม |
| ตัวอย่าง/names.c | ตัวอย่างการโทรกลับกลุ่มที่มีชื่อ |
| ตัวอย่าง/posix.c | ตัวอย่าง POSIX API |
| ตัวอย่าง/regset.c | ตัวอย่างการใช้ RegSet API |
| ตัวอย่าง/scan.c | ตัวอย่างการใช้ onig_scan() |
| ตัวอย่าง/simple.c | ตัวอย่างขั้นต่ำ (Oniguruma API) |
| ตัวอย่าง/sql.c | ตัวอย่างอักขระเมตาของตัวแปร |
| ตัวอย่าง/user_property.c | ตัวอย่างคุณสมบัติ Unicode ที่ผู้ใช้กำหนด |
โปรแกรมทดสอบ
| ไฟล์ | คำอธิบาย |
|---|---|
| ตัวอย่าง/ไวยากรณ์c | การทดสอบไวยากรณ์ Perl, Java และ ASIS |
| ตัวอย่าง/crnl.c | --enable-crnl-as-line-terminator ทดสอบ |
| ไฟล์ | คำอธิบาย |
|---|---|
| oniguruma.h | ไฟล์ส่วนหัว Oniguruma API (สาธารณะ) |
| onig-config.in | เทมเพลตโปรแกรมตรวจสอบการกำหนดค่า |
| รีเจนซี.เอช | ไฟล์ส่วนหัวของเฟรมเวิร์กการเข้ารหัสอักขระ |
| regint.h | คำจำกัดความภายใน |
| แยกวิเคราะห์ใหม่h | คำจำกัดความภายในสำหรับ regparse.c และ regcomp.c |
| regcomp.c | ฟังก์ชั่นการคอมไพล์และการเพิ่มประสิทธิภาพ |
| รีเจนซี | กรอบการเข้ารหัสอักขระ |
| regerror.c | ฟังก์ชั่นข้อความแสดงข้อผิดพลาด |
| regext.c | ฟังก์ชั่น API แบบขยาย (API เวอร์ชันดีลักซ์) |
| regexec.c | ฟังก์ชั่นการค้นหาและจับคู่ |
| แยกวิเคราะห์ใหม่ | ฟังก์ชั่นการแยกวิเคราะห์ |
| regsyntax.c | ฟังก์ชันไวยากรณ์รูปแบบและคำจำกัดความไวยากรณ์ในตัว |
| regtrav.c | บันทึกฟังก์ชันการสำรวจข้อมูลต้นไม้ประวัติ |
| การพลิกกลับ.c | ฟังก์ชั่นข้อมูลเวอร์ชัน |
| st.h | ไฟล์ส่วนหัวของฟังก์ชันตารางแฮช |
| st.c | ฟังก์ชั่นตารางแฮช |
| oniggnu.h | ไฟล์ส่วนหัว GNU regex API (สาธารณะ) |
| reggnu.c | ฟังก์ชัน GNU regex API |
| onigposix.h | ไฟล์ส่วนหัว POSIX API (สาธารณะ) |
| reposerr.c | ฟังก์ชั่นข้อความแสดงข้อผิดพลาด POSIX |
| regposix.c | ฟังก์ชัน POSIX API |
| mktable.c | เครื่องกำเนิดตารางประเภทอักขระ |
| ascii.c | การเข้ารหัส ASCII |
| euc_jp.c | การเข้ารหัส EUC-JP |
| euc_tw.c | การเข้ารหัส EUC-TW |
| euc_kr.c | การเข้ารหัส EUC-KR, EUC-CN |
| sjis.c | การเข้ารหัส Shift_JIS |
| big5.c | การเข้ารหัส Big5 |
| gb18030.c | การเข้ารหัส GB18030 |
| koi8.c | การเข้ารหัส KOI8 |
| koi8_r.c | การเข้ารหัส KOI8-R |
| cp1251.c | การเข้ารหัส CP1251 |
| iso8859_1.c | ISO-8859-1 (ละติน-1) |
| iso8859_2.c | ISO-8859-2 (ละติน-2) |
| iso8859_3.c | ISO-8859-3 (ละติน-3) |
| iso8859_4.c | ISO-8859-4 (ละติน-4) |
| iso8859_5.c | ISO-8859-5 (ซีริลลิก) |
| iso8859_6.c | ISO-8859-6 (อาหรับ) |
| iso8859_7.c | ISO-8859-7 (กรีก) |
| iso8859_8.c | ISO-8859-8 (ภาษาฮีบรู) |
| iso8859_9.c | ISO-8859-9 (ละติน-5 หรือตุรกี) |
| iso8859_10.c | ISO-8859-10 (ละติน-6 หรือนอร์ดิก) |
| iso8859_11.c | ISO-8859-11 (ไทย) |
| iso8859_13.c | ISO-8859-13 (Latin-7 หรือ Baltic Rim) |
| iso8859_14.c | ISO-8859-14 (ละติน-8 หรือเซลติก) |
| iso8859_15.c | ISO-8859-15 (ละติน-9 หรือยุโรปตะวันตกพร้อมยูโร) |
| iso8859_16.c | ISO-8859-16 (ละติน-10) |
| utf8.c | การเข้ารหัส UTF-8 |
| utf16_be.c | การเข้ารหัส UTF-16BE |
| utf16_le.c | การเข้ารหัส UTF-16LE |
| utf32_be.c | การเข้ารหัส UTF-32BE |
| utf32_le.c | การเข้ารหัส UTF-32LE |
| ยูนิโค้ด.ซี | รหัสทั่วไปของการเข้ารหัส Unicode |
| unicode_fold_data.c | ข้อมูลการพับ Unicode |
| windows/testc.c | ทดสอบโปรแกรมสำหรับ Windows (VC++) |