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 (بنفس قوة 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 |