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-devel
yum install oniguruma
apt install libonig5
pacman -S oniguruma
zypper install oniguruma
autoreconf -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++) |