https://github.com/k-takata/Onigmo
Onigmo เป็นไลบรารีนิพจน์ทั่วไปที่แยกจาก Oniguruma โดยมุ่งเน้นที่จะสนับสนุนนิพจน์ใหม่เช่น K , R , (?(cond)yes|no) และอื่น ๆ ซึ่งได้รับการสนับสนุนใน Perl 5.10+
เนื่องจาก Onigmo ถูกใช้เป็นไลบรารี regexp เริ่มต้นของ Ruby 2.0 หรือใหม่กว่า แพตช์จำนวนมากจึงถูกแบ็คพอร์ตจาก Ruby 2.x
ดูเพิ่มเติมที่หน้า Wiki: https://github.com/k-takata/Onigmo/wiki
ใบอนุญาตบีเอสดี
./autogen.sh (หากไม่มี configure )./configuremakemake installทดสอบ
ทำการทดสอบ
ถอนการติดตั้ง
ทำการถอนการติดตั้ง
ตรวจสอบการกำหนดค่า
onigmo-config --cflags onigmo-config --libs onigmo-config --คำนำหน้า onigmo-config --exec-คำนำหน้า
ดำเนินการ build_nmake.cmd build_x64 หรือ build_x86 จะถูกใช้เป็นไดเร็กทอรีการทำงาน/เอาต์พุต
onigmo_s.lib: static link library
onigmo.lib: import library for dynamic link
onigmo.dll: dynamic link library
ทดสอบ (ASCII/Shift_JIS/EUC-JP/Unicode)
ดำเนินการ build_nmake.cmd test จำเป็นต้องใช้ Python (ที่มี bitness เดียวกันกับ Onigmo) เพื่อทำการทดสอบ
ดำเนินการ mingw32-make -f win32/Makefile.mingw build_x86-64 , build_i686 และอื่นๆ จะใช้เป็นไดเร็กทอรีการทำงาน/เอาต์พุต
libonigmo.a: static link library
libonigmo.dll.a: import library for dynamic link
onigmo.dll: dynamic link library
ทดสอบ (ASCII/Shift_JIS/EUC-JP/Unicode)
ดำเนินการ mingw32-make -f win32/Makefile.mingw test จำเป็นต้องใช้ Python (ที่มี bitness เดียวกันกับ Onigmo) เพื่อทำการทดสอบ
หากคุณใช้ MinGW บน MSYS2 คุณสามารถใช้ ./configure และ make เหมือน Unix ได้ ในกรณีนี้ ชื่อ DLL จะมีหมายเลขเวอร์ชัน API เช่น:
libonigmo-6.dll
ดู doc/RE หรือ doc/RE.ja สำหรับภาษาญี่ปุ่น
รวม onigmo.h ไว้ในโปรแกรมของคุณ (Onigmo API) ดูเอกสาร/API สำหรับ Onigmo API
หากคุณต้องการปิดการใช้งานคำจำกัดความประเภท UChar (== unsigned char ) ใน onigmo.h ให้กำหนด ONIG_ESCAPE_UCHAR_COLLISION แล้วรวม onigmo.h
หากคุณต้องการปิดใช้งานคำจำกัดความประเภท regex_t ใน onigmo.h ให้กำหนด ONIG_ESCAPE_REGEX_T_COLLISION แล้วรวม onigmo.h
ตัวอย่างบรรทัดคำสั่งการคอมไพล์/ลิงก์ใน Unix หรือ Cygwin (คำนำหน้า == /usr/local case)
cc sample.c -L/usr/local/lib -lonigmo
หากคุณต้องการใช้ไลบรารีลิงก์แบบคงที่ (onigmo_s.lib) ใน Win32 ให้เพิ่มตัวเลือก -DONIG_EXTERN=extern ให้กับคอมไพเลอร์ C
| ไฟล์ | คำอธิบาย |
|---|---|
| ตัวอย่าง/simple.c | ตัวอย่างขั้นต่ำ (Onigmo API) |
| ตัวอย่าง/names.c | ตัวอย่างการโทรกลับกลุ่มที่มีชื่อ |
| ตัวอย่าง/encode.c | ตัวอย่างการเข้ารหัสบางส่วน |
| ตัวอย่าง/listcap.c | ตัวอย่างประวัติการจับกุม |
| ตัวอย่าง/posix.c | ตัวอย่าง POSIX API |
| ตัวอย่าง/sql.c | ตัวอย่างอักขระเมตาของตัวแปร |
โปรแกรมทดสอบ
| ไฟล์ | คำอธิบาย |
|---|---|
| ตัวอย่าง/ไวยากรณ์c | การทดสอบไวยากรณ์ Perl, Java และ ASIS |
| ตัวอย่าง/crnl.c | การทดสอบซีเอ็นแอล |
| ไฟล์ | คำอธิบาย |
|---|---|
| onigmo.h | ไฟล์ส่วนหัว Onigmo API (สาธารณะ) |
| onigmo-config.in | เทมเพลตโปรแกรมตรวจสอบการกำหนดค่า |
| onigmo.py | โมดูล Onigmo สำหรับ Python |
| รีเจนซี.เอช | ไฟล์ส่วนหัวของเฟรมเวิร์กการเข้ารหัสอักขระ |
| 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 | ฟังก์ชั่นตารางแฮช |
| onigmognu.h | ไฟล์ส่วนหัว GNU regex API (สาธารณะ) |
| reggnu.c | ฟังก์ชัน GNU regex API |
| onigmoposix.h | ไฟล์ส่วนหัว POSIX API (สาธารณะ) |
| reposer.c | ฟังก์ชั่นข้อความแสดงข้อผิดพลาด POSIX |
| regposix.c | ฟังก์ชัน POSIX API |
| enc/mktable.c | เครื่องกำเนิดตารางประเภทอักขระ |
| enc/ascii.c | การเข้ารหัส ASCII-8BIT |
| enc/jis/ | ข้อมูลคุณสมบัติ JIS |
| enc/euc_jp.c | การเข้ารหัส EUC-JP |
| enc/euc_tw.c | การเข้ารหัส EUC-TW |
| enc/euc_kr.c | การเข้ารหัส EUC-KR, EUC-CN |
| enc/shift_jis.c | การเข้ารหัส Shift_JIS |
| enc/shift_jis.h | ส่วนทั่วไปของการเข้ารหัส Shift_JIS และ Windows-31J |
| enc/windows_31j.c | การเข้ารหัส Windows-31J (CP932) |
| enc/big5.c | การเข้ารหัส Big5 |
| enc/gb18030.c | การเข้ารหัส GB18030 |
| enc/gbk.c | การเข้ารหัส GBK |
| enc/koi8_r.c | การเข้ารหัส KOI8-R |
| enc/koi8_u.c | การเข้ารหัส KOI8-U |
| enc/iso_8859.h | คำจำกัดความทั่วไปของการเข้ารหัส ISO-8859 |
| enc/iso_8859_1.c | ISO-8859-1 (ละติน-1) |
| enc/iso_8859_2.c | ISO-8859-2 (ละติน-2) |
| enc/iso_8859_3.c | ISO-8859-3 (ละติน-3) |
| enc/iso_8859_4.c | ISO-8859-4 (ละติน-4) |
| enc/iso_8859_5.c | ISO-8859-5 (ซีริลลิก) |
| enc/iso_8859_6.c | ISO-8859-6 (อาหรับ) |
| enc/iso_8859_7.c | ISO-8859-7 (กรีก) |
| enc/iso_8859_8.c | ISO-8859-8 (ภาษาฮีบรู) |
| enc/iso_8859_9.c | ISO-8859-9 (ละติน-5 หรือตุรกี) |
| enc/iso_8859_10.c | ISO-8859-10 (ละติน-6 หรือนอร์ดิก) |
| enc/iso_8859_11.c | ISO-8859-11 (ไทย) |
| enc/iso_8859_13.c | ISO-8859-13 (Latin-7 หรือ Baltic Rim) |
| enc/iso_8859_14.c | ISO-8859-14 (ละติน-8 หรือเซลติก) |
| enc/iso_8859_15.c | ISO-8859-15 (ละติน-9 หรือยุโรปตะวันตกพร้อมยูโร) |
| enc/iso_8859_16.c | ISO-8859-16 (ละติน-10) |
| enc/utf_8.c | การเข้ารหัส UTF-8 |
| enc/utf_16be.c | การเข้ารหัส UTF-16BE |
| enc/utf_16le.c | การเข้ารหัส UTF-16LE |
| enc/utf_32be.c | การเข้ารหัส UTF-32BE |
| enc/utf_32le.c | การเข้ารหัส UTF-32LE |
| enc/unicode.c | รหัสทั่วไปของการเข้ารหัส Unicode |
| enc/ยูนิโค้ด/ | ข้อมูลการพับเคส Unicode และข้อมูลคุณสมบัติ |
| enc/windows_1250.c | การเข้ารหัส Windows-1250 (CP1250) (ยุโรปกลาง/ตะวันออก) |
| enc/windows_1251.c | การเข้ารหัส Windows-1251 (CP1251) (ซีริลลิก) |
| enc/windows_1252.c | การเข้ารหัส Windows-1252 (CP1252) (ละติน) |
| enc/windows_1253.c | การเข้ารหัส Windows-1253 (CP1253) (กรีก) |
| enc/windows_1254.c | การเข้ารหัส Windows-1254 (CP1254) (ตุรกี) |
| enc/windows_1257.c | การเข้ารหัส Windows-1257 (CP1257) (Baltic Rim) |
| enc/cp949.c | การเข้ารหัส CP949 (ใช้ใน Ruby เท่านั้น) |
| enc/emacs_mule.c | การเข้ารหัสภายใน Emacs (ใช้เฉพาะใน Ruby) |
| enc/gb2312.c | การเข้ารหัส GB2312 (ใช้ใน Ruby เท่านั้น) |
| enc/us_ascii.c | การเข้ารหัส US-ASCII (ใช้ใน Ruby เท่านั้น) |
| win32/Makefile | Makefile สำหรับ Win32 (VC++) |
| win32/Makefile.mingw | Makefile สำหรับ Win32 (MinGW) |
| win32/config.h | config.h สำหรับ Win32 |
| win32/onigmo.rc | ไฟล์ทรัพยากรสำหรับ Win32 |