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 (بنفس قوة 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 (بنفس قوة Onigmo) لإجراء الاختبارات.
إذا كنت تستخدم MinGW على MSYS2، فيمكنك أيضًا استخدام ./configure
make
مثل Unix. في هذه الحالة، سيكون لاسم DLL رقم إصدار API. على سبيل المثال:
libonigmo-6.dll
راجع doc/RE أو doc/RE.ja للغة اليابانية.
قم بتضمين onigmo.h في برنامجك. (Onigmo API) راجع doc/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.
ملف | وصف |
---|---|
عينة/بسيطة.ج | مثال على الحد الأدنى (Onigmo API) |
عينة/أسماء.ج | مثال على رد اتصال المجموعة المسماة. |
عينة/تشفير.c | مثال على بعض الترميزات. |
عينة/listcap.c | مثال على تاريخ الالتقاط. |
عينة/posix.c | عينة POSIX API. |
عينة / sql.c | مثال على أحرف التعريف المتغيرة. |
برامج الاختبار
ملف | وصف |
---|---|
عينة/بناء الجملة.ج | اختبار بناء جملة Perl وJava وASIS. |
عينة/crnl.c | اختبار CRNL |
ملف | وصف |
---|---|
onigmo.h | ملف رأس Onigmo API (عام) |
onigmo-config.in | قالب برنامج فحص التكوين |
onigmo.py | وحدة Onigmo لبيثون |
ريجينك.ح | ملف رأس إطار ترميز الأحرف |
regint.h | تعريفات داخلية |
regparse.h | التعريفات الداخلية لـ regparse.c وregcomp.c |
regcomp.c | وظائف التجميع والتحسين |
regenc.c | إطار ترميز الأحرف |
regerror.c | وظيفة رسالة الخطأ |
regext.c | وظائف API الموسعة (إصدار فاخر API) |
regexec.c | وظائف البحث والمطابقة |
regparse.c | وظائف التحليل. |
regsyntax.c | وظائف بناء الجملة النمطية وتعريف بناء الجملة المدمج |
regtrav.c | التقاط وظائف اجتياز بيانات شجرة التاريخ |
regversion.c | وظيفة معلومات الإصدار |
ش | ملف رأس وظائف جدول التجزئة |
st.c | وظائف جدول التجزئة |
onigmognu.h | ملف رأس GNU regex API (عام) |
reggnu.c | وظائف GNU regex API |
onigmoposix.h | ملف رأس POSIX API (عام) |
regposerr.c | وظيفة رسالة الخطأ POSIX |
regposix.c | وظائف واجهة برمجة تطبيقات POSIX |
enc/mktable.c | مولد جدول نوع الحرف |
إنك/ascii.c | ترميز ASCII-8BIT |
إنك/جيس/ | بيانات خصائص 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). |
إنك/big5.c | ترميز Big5 |
إنك/gb18030.c | ترميز GB18030 |
إنك/gbk.c | ترميز GBK |
enc/koi8_r.c | ترميز KOI8-R |
enc/koi8_u.c | ترميز KOI8-U |
إنك/iso_8859.h | التعريف الشائع لترميز ISO-8859 |
إنك/iso_8859_1.c | ISO-8859-1 (لاتيني-1) |
إنك/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 (يوناني) |
إنك/iso_8859_8.c | ISO-8859-8 (بالعبرية) |
إنك/iso_8859_9.c | ISO-8859-9 (لاتيني-5 أو تركي) |
إنك/iso_8859_10.c | ISO-8859-10 (لاتيني-6 أو شمالي) |
إنك/iso_8859_11.c | ISO-8859-11 (التايلاندية) |
إنك/iso_8859_13.c | ISO-8859-13 (Latin-7 أو حافة البلطيق) |
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) |
إنك/utf_8.c | ترميز UTF-8 |
enc/utf_16be.c | ترميز UTF-16BE |
enc/utf_16le.c | ترميز UTF-16LE |
enc/utf_32be.c | ترميز UTF-32BE |
إنك/utf_32le.c | ترميز UTF-32LE |
enc/unicode.c | الرموز الشائعة لترميز Unicode |
إنك/يونيكود/ | حالة 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) (حافة البلطيق) |
إنك/cp949.c | ترميز CP949 (يستخدم فقط في روبي) |
enc/emacs_mule.c | تشفير Emacs الداخلي (يستخدم فقط في Ruby) |
إنك/gb2312.c | ترميز GB2312 (يستخدم فقط في روبي) |
enc/us_ascii.c | ترميز US-ASCII (يستخدم فقط في روبي) |
win32/Makefile | ملف تعريف لـ Win32 (VC++) |
win32/Makefile.mingw | ملف تعريف لـ Win32 (MinGW) |
win32/config.h | التكوين.h لWin32 |
win32/onigmo.rc | ملف الموارد لWin32 |