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
)./configure
make
make 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 |