أداة بسيطة بقفّازات أمان
البحث والاستبدال أبسط عمليّة برمجيّة، يستخدمها كلّ من فتح Microsoft Word أو VS Code، لكنّها تتحوّل إلى كابوس عند العمل على نصّ عربيّ بسبب ثلاث مشكلات تقنيّة جوهريّة: أوّلاً، حدود الكلمة (\b) في التعبير المنتظم لا تعمل على الحروف العربيّة لأنّ مواصفة JavaScript الأصليّة بنت \b على فئة [a-zA-Z0-9_] فقط؛ ثانياً، التعابير المنتظمة قد تتسبّب بـ Catastrophic Backtracking الذي يجمّد المتصفّح لدقائق على نصّ بسيط بسبب نمط معقّد ولو بحُسن نيّة؛ ثالثاً، الاستبدال من اليسار إلى اليمين بطريقة متسلسلة يفسد الفهارس عندما يكون النصّ البديل أطول أو أقصر من الأصل، فينتهي بنتائج خاطئة في النصوص الطويلة.
هذه الأداة تعالج المشكلات الثلاث بقرارات تصميميّة واعية: حدود كلمة عربيّة عبر Unicode property escapes (\p{L} للحروف) التي تعمل على العربيّة والفارسيّة والأرديّة وغيرها، سقف صلب 100,000 تطابق لمنع التجميد مع مهلة زمنيّة 5 ثوانٍ، واستبدال من اليمين إلى اليسار يحفظ الفهارس بدقّة حتّى عند تغيّر طول النصّ.
النتيجة: عمليّة بحث واستبدال تعمل بنفس الكفاءة التي تتوقّعها من محرّر نصّيّ احترافيّ، لكن داخل متصفّحك، بدون رفع نصّك إلى أيّ خادم، وبدعم عربيّ من الدرجة الأولى لا كميزة مُلحَقة.
الوضعان: حرفيّ ومنتظم
الوضع الحرفيّ (Literal): النصّ يُعامَل كما هو، ورموز التعبير المنتظم (. * + ? ( ) [ ] { } ^ $ | \) تُهرَّب تلقائياً قبل التطبيق. ابحث عن «.» وستجد النقاط فقط لا أيّ حرف. هذا الوضع آمن بالكامل ومناسب لـ 90% من حالات الاستخدام اليوميّة.
الوضع المنتظم (Regex): يقبل تعبيراً منتظماً كاملاً بصيغة JavaScript. مفيد لاستبدال أنماط معقّدة: \d{4} لكلّ رقم بأربع خانات، [\u0621-\u064A]+ لأيّ كلمة عربيّة، https?://[^\s]+ لأيّ رابط. الوضع قويّ لكنّه يتطلّب معرفة بأساسيّات regex.
التبديل بين الوضعين فوريّ. الأداة تُظهر تحذيراً عند اكتشاف نمط قد يُسبّب أداءً سيّئاً (نجوم مكرّرة، تكرار متداخل) قبل تنفيذه.
الخيارات الستّ
تجاهل الحالة (Case-insensitive): Hello يطابق hello و HELLO. للعربيّة غير ذي معنى لأنّها بلا حالات، لكنّه ضروريّ لأيّ نصّ مختلط بالإنجليزيّة.
كلمة كاملة (Whole word): «دار» يطابق «الدار» و«دارت» في الوضع العادي. تفعيل هذا يقصره على «دار» منفصلة بفواصل (مسافة، علامة ترقيم، بداية/نهاية نصّ). متاح في الوضع الحرفيّ فقط — في الوضع المنتظم، استخدم \b أو (?<=\s|^) و(?=\s|$) صراحة.
متعدّد السطور (Multiline): في الوضع المنتظم، يجعل ^ و $ يطابقان بداية ونهاية كلّ سطر، لا النصّ كاملاً. ضروريّ للاستبدالات سطراً سطراً (مثل «أضف نقطة في نهاية كلّ سطر»).
نقطة عبر السطور (Dotall): في الوضع المنتظم، يجعل النقطة . تطابق سطر جديد أيضاً. مفيد لاستبدال محتوى بين علامتين قد يمتدّ عبر أسطر.
عدّ التطابقات فقط (Count only): يُظهر عدد التطابقات دون استبدال. مفيد للاختبار قبل التنفيذ.
معاينة قبل التطبيق (Preview): يعرض أوّل 10 تطابقات مع 30 حرفاً قبل وبعد، لمراجعة الناتج المتوقّع.
عشرة أمثلة عمليّة
1. توحيد التواريخ: (\d{1,2})/(\d{1,2})/(\d{4}) → $3-$2-$1 يحوّل 17/05/2026 إلى 2026-05-17. صيغة ISO القياسيّة لكلّ التواريخ في قاعدة البيانات.
2. حذف أرقام التهميش: \[\d+\] → فراغ، يحذف [1] [12] [127] من نصّ منسوخ من ويكيبيديا أو ورقة أكاديميّة.
3. تطبيع المسافات المتعدّدة: \s+ → مسافة واحدة، يحوّل المسافات والتبويبات والأسطر المتتالية إلى مسافة واحدة. مفيد لتنظيف نصوص PDF.
4. إزالة Tashkeel: [\u064B-\u0652\u0670] → فراغ، يحذف الفتحة والكسرة والضمّة والسكون والشدّة والتنوين والألف الخنجريّة.
5. تحويل أرقام عربيّة هنديّة إلى لاتينيّة: ابحث عن «٠» واستبدل بـ«0»، ثمّ كرّر للأرقام التسعة. أو بـregex: استخدم خاصيّة Unicode \p{Nd}.
6. حذف وسوم HTML: <[^>]+> → فراغ، يحذف كلّ الوسوم من نصّ نسخته من صفحة ويب.
7. تحويل تواريخ هجريّة: (\d{1,2})\s*هـ → $1 AH، لتوحيد كيفيّة كتابة السنوات الهجريّة.
8. تنظيف أرقام الهواتف: [\s\-\(\)] → فراغ، يحذف الفواصل والشُرَط والأقواس من +966 (50) 123-4567.
9. استبدال مصطلح عبر النصّ كاملاً: «شركة الوصل القديمة» → «شركة الوصل الجديدة»، مفيد بعد تغيير اسم تجاريّ.
10. عكس ترتيب الأسماء: (\S+)\s+(\S+) → $2 $1، يحوّل «أحمد الفهد» إلى «الفهد أحمد» في قائمة كاملة.
حماية تلقائيّة من الأخطاء
الحماية من الاستبدال الكارثيّ: الأداة تكتشف أنماطاً معروفة بالتسبّب في Catastrophic Backtracking (مثل (a+)+b أو (.*)*) وتُحذّر قبل التنفيذ. لو أصرّيت، تُطبَّق مع مهلة 5 ثوانٍ.
سجلّ التراجع (Undo): آخر 10 عمليّات استبدال يمكن التراجع عنها بنقرة واحدة. مفيد عند الاكتشاف المتأخّر للخطأ.
التحقّق من صحّة Regex: قبل التنفيذ، الأداة تتحقّق من صلاحيّة التعبير وتُظهر رسالة خطأ واضحة (مع الموضع) لو كان به خلل في الصياغة.
الحدّ الأقصى للتطابقات: 100,000 تطابق في عمليّة واحدة. تجاوز هذا الحدّ يعرض تحذيراً ويُتيح لك التنفيذ على دفعات.
حدود الأداة
الأداة لا تتعامل مع ملفّات أكبر من 5 ميغابايت (~2 مليون حرف عربيّ) للحفاظ على أداء المتصفّح. للملفّات الأكبر، استخدم محرّراً مكتبياً (VS Code، Sublime Text) أو سطر أوامر (sed، awk).
لا تدعم أنماط Lookbehind ذات الطول المتغيّر في المتصفّحات القديمة (قبل Safari 16.4). إن احتجتها، حدّث المتصفّح أو استخدم بديلاً.
لا تتعامل مع علامات التشكيل كحرف مستقلّ في حدود الكلمة افتراضياً. لو احتجت معاملةً خاصّة للحروف المركّبة، أضف \p{M} إلى نمطك.
الخصوصيّة
كلّ المعالجة تتمّ محلياً في متصفّحك. نصّك لا يُرسَل إلى أيّ خادم، ولا يُحفَظ بعد إغلاق الصفحة. آمن للوثائق الحسّاسة كالعقود، السجلّات الطبيّة، وقواعد بيانات العملاء. هذا قرار تصميميّ، لا ميزة إضافيّة.
أساسيّات Regex في 5 دقائق
التعابير المنتظمة لغة صغيرة بحدّ ذاتها. إن لم تكن مرتاحاً معها، إليك ست لبنات أساسيّة تغطّي 80% من حالات الاستخدام اليوميّة:
الفئات (Character classes): \d = رقم، \w = حرف لاتينيّ أو رقم أو شرطة سفليّة، \s = مسافة. بصيغة العكس: \D, \W, \S.
المُكَمِّمات (Quantifiers): * = صفر أو أكثر، + = واحد أو أكثر، ? = صفر أو واحد، {3} = ثلاث مرّات بالضبط، {3,7} = من ثلاث إلى سبع.
المُجَموعات (Groups): () تُلتقط للاستبدال بـ$1, $2. (?:) غير ملتقطة (للتنظيم فقط دون التقاط).
التناوب (Alternation): قط|كلب|عصفور يطابق إحداها.
المراسي (Anchors): ^ بداية السطر، $ نهاية السطر، \b حدود الكلمة (لاتينيّ فقط).
للعربيّة: استخدم \p{L} للحروف، [\u0621-\u064A] لنطاق العربيّة الأساسيّ، [\u064B-\u0652] للتشكيل.
أنماط متقدّمة شائعة الطلب
البريد الإلكترونيّ: [\w.-]+@[\w.-]+\.\w+ — كافٍ للاستخدام العاديّ. للتحقّق الصارم، النمط القياسيّ RFC 5322 أطول من 300 حرف وغير عمليّ.
أرقام الهواتف السعوديّة: (?:\+966|0)?5\d{8} — يقبل +966500000000 أو 0500000000 أو 500000000.
تواريخ ميلاديّة: \d{4}-\d{2}-\d{2} صيغة ISO، أو \d{1,2}/\d{1,2}/\d{4} الصيغة الشائعة.
أرقام تعريف ضريبيّ سعوديّة: 3\d{14} — تبدأ بـ 3 وتتكوّن من 15 رقماً.
أيبان سعوديّ: SA\d{22} — يبدأ بـ SA ويتكوّن من 24 خانة إجماليّاً.
وسوم HTML: <(\w+)[^>]*>.*?<\/\1> — وسم مفتوح وإغلاق متطابق. مفيد لاستخراج محتوى عنصر معيّن.
الأداء وتجنّب الكوارث
Catastrophic Backtracking هو سيناريو يجمّد فيه محرّك regex الحاسوب لأنّ النمط يحاول مليارات الاحتمالات. مثال شهير: (a+)+b على نصّ «aaaaaaaaaaaaaaaaaaaaX». المحرّك يجرّب كلّ تقسيم ممكن للأحرف بين المُكَمِّمين قبل أن يقرّر الفشل.
القاعدة الذهبيّة: تجنّب التكرار المتداخل. لو رأيت (...)* أو (...)+ أو (...)? داخل تكرار آخر، أعد التفكير في النمط. غالباً يمكن إعادة كتابته بدون تداخل.
استخدم المُكَمِّمات «الكسولة» (lazy) عند الحاجة. .*? أقصر تطابق ممكن، بدل .* الذي يأخذ الأطول ثمّ يتراجع. الفرق في الأداء ضخم في النصوص الطويلة.
اختبر النمط على عيّنة صغيرة قبل تطبيقه على الملفّ الكامل. أداتنا توفّر معاينة على أوّل 10 تطابقات بالضبط لهذا الغرض.
البحث والاستبدال مقابل الذكاء الاصطناعي
قد تتساءل: لماذا لا أطلب من ChatGPT أن يقوم بالاستبدال؟ ثلاثة أسباب: الاتّساق — regex يعطي نفس النتيجة في كلّ مرّة، بينما LLM قد يفسّر التعليمات بشكل مختلف؛ الخصوصيّة — أداتك لا تخرج من المتصفّح؛ التكلفة والسرعة — regex فوريّ ومجانيّ، LLM قد يأخذ ثوانٍ ويُكلِّف لكلّ ألف رمز.
متى يتفوّق الذكاء الاصطناعي؟ في التحويلات الدلاليّة («غيّر نبرة هذا النصّ من رسميّ إلى ودود»)، أو الاستخراج المعقّد («استخرج كلّ ذكر لتاريخ من هذا الملفّ، حتّى لو كان مكتوباً بالكلمات»). للاستبدالات الميكانيكيّة، regex أفضل بمراحل.
الأنماط المحفوظة وسير العمل المتكرّر
لو كنت تطبّق نفس الاستبدالات على عشرات الملفّات شهريّاً (تنظيف بيانات مُصدَّرة، إعداد محتوى قبل النشر، تطبيع تقارير)، فالحفظ اليدويّ لكلّ نمط مضيعة للوقت. أداتنا تتيح حفظ مجموعات استبدال (recipes) قابلة لإعادة الاستخدام. مثال على وصفة «تنظيف نصّ مُصدَّر من PDF»: استبدال شَرَطات النهايات بمسافات، توحيد علامات التنصيص، إزالة أرقام الصفحات، حذف رؤوس الجداول المتكرّرة.
اِبنِ مكتبة وصفات لأنواع المحتوى التي تتعامل معها: «تنظيف OCR عربيّ»، «تحضير نصّ للنشر على WordPress»، «تطبيع أسماء أعمدة قاعدة بيانات». كلّ وصفة هي قائمة استبدالات مُرتَّبة. الترتيب مهمّ: لو استبدلت «أ» بـ «ا» قبل البحث عن كلمة تبدأ بـ «أ»، فلن يجدها البحث.
وثّق كلّ وصفة بتعليق يشرح الهدف والمصدر والإصدار. الوصفات تتطوّر مع الوقت، ومن السهل أن تنسى لماذا أضفت استبدالاً معيّناً قبل ستّة أشهر. التوثيق المختصر يوفّر ساعات بحث عند تعديل الوصفة لاحقاً.
للفرق الكبيرة، اِنشر الوصفات في مستودع مشترك (Git، Notion، SharePoint) مع نسخة لكلّ تعديل. هذا يضمن أنّ كلّ عضو فريق يستخدم نفس القواعد، ويمنع التضارب بين تعديلات الأفراد. كما يجعل مراجعة الوصفات جزءاً من سير عمل الجودة.
فئات الحرف في يونيكود والبحث المتقدّم
الأنماط البسيطة (literal) تكفي للبحث عن كلمة محدّدة، لكنّ regex المتقدّم يستخدم فئات الحرف (character classes) للتعامل مع أنماط أوسع. مثلاً p{L} يطابق أيّ حرف لغويّ بأيّ سكريبت، p{N} يطابق أيّ رقم، p{P} يطابق علامات الترقيم. هذه الفئات أوسع بكثير من [a-zA-Z] الذي يقتصر على الأبجديّة اللاتينيّة.
للعمل مع العربيّة تحديداً، استخدم p{Arabic} أو نطاقات يونيكود المباشرة [-ۿ] (الكتلة الأساسيّة)، [ݐ-ݿ] (الإضافات)، [ﭐ-﷿] (الأشكال التقديميّة)، [ﹰ-] (الأشكال التقديميّة-ب). معظم النصوص العربيّة الحديثة تستخدم الكتلة الأساسيّة فقط، لكنّ النصوص المُستخرَجة من PDF قديم قد تحوي أشكالاً تقديميّة تحتاج تطبيعاً.
التعديلات (flags) تغيّر سلوك النمط: i لتجاهل حالة الأحرف (لا فائدة في العربيّة لكنّها مفيدة للنصوص المختلطة)، g لاستبدال كلّ المطابقات لا الأولى فقط، m لجعل ^ و $ يطابقان بداية ونهاية كلّ سطر، s لجعل النقطة تطابق أسطر النص الجديدة (مفيد لمعالجة فقرات متعدّدة الأسطر).
المجموعات المُسمّاة (named groups) تجعل الأنماط المعقّدة قابلة للقراءة: (?<year>d{4})-(?<month>\d{2})-(?<day>\d{2}) يلتقط تاريخاً بصيغة ISO. في الاستبدال، يمكنك الإشارة إلى المجموعة باسمها بدل رقمها، فيصبح النمط أوضح ولا يتأثّر بإعادة الترتيب.
مقارنة مع أدوات أخرى
مقابل sed: sed سطر أوامر Unix قويّ للاستبدال على ملفّات ضخمة دون تحميلها في الذاكرة. ميزته: السرعة والكفاءة في خطوط shell. عيبه: صياغة regex القديمة (BRE) تختلف عن المعاصرة، ولا يدعم يونيكود بشكل كامل في كلّ التوزيعات. استخدمه للأتمتة على الخوادم، لكنّ أداتنا الويب أبسط للاستخدام التفاعليّ.
مقابل awk: awk أقوى من sed في التعامل مع البيانات المهيكَلة (أعمدة CSV، سجلّات logs). لو احتجت استبدالاً مشروطاً على عمود محدّد، فـawk أفضل من أداة استبدال نصّيّ بسيطة. لكنّ تعلّمه يأخذ وقتاً، ولأغلب مهامّ الاستبدال البسيط، أداتنا أسرع.
مقابل VS Code: VS Code يوفّر بحثاً واستبدالاً ممتازاً عبر ملفّات متعدّدة، مع معاينة فوريّة. ميزته: التكامل مع Git (يمكن التراجع بسهولة). عيبه: للملفّات الضخمة (> 50 MB) يصبح بطيئاً. استخدمه للأكواد، واستخدم أداتنا للنصوص الكبيرة المنفصلة.
مقابل Excel/Google Sheets: دالّة SUBSTITUTE في الجداول تكفي للاستبدالات البسيطة على عمود واحد. لكنّها لا تدعم regex (إلّا في Google Sheets عبر REGEXREPLACE). للاستبدال على آلاف الصفوف بنمط معقّد، أداتنا أسرع لأنّك تنسخ العمود، تستبدل، وتلصق النتيجة.
مقابل Find & Replace في Word: Word يدعم «wildcards» وهي صياغة regex مبسّطة. مناسب للوثائق المنسَّقة (يحافظ على الخطوط والألوان). للنصّ الخامّ، أداتنا أبسط ولا تخاطر بفقدان التنسيق.
أسئلة شائعة
هل تحفظ الأداة نصّي؟ لا، كلّ المعالجة تتمّ في متصفّحك. النصّ لا يُرسَل لأيّ خادم. لو أغلقت التبويب، يضيع النصّ. لو احتجت حفظه، انسخ النتيجة لملفّ محلّيّ.
هل يدعم البحث في ملفّات متعدّدة؟ لا، الأداة تعمل على نصّ واحد في المرّة. لو احتجت بحثاً عبر ملفّات، استخدم VS Code أو grep -r على سطر الأوامر.
كيف أتراجع عن استبدال غير مقصود؟ الأداة تحتفظ بالنصّ الأصليّ في خانة منفصلة قبل التطبيق. لو أخطأت، أعد نسخ الأصل من السجلّ. لكن انسخ دائماً نصّاً مهمّاً لمكان آمن قبل أيّ عمليّة كبيرة.
لماذا لا يطابق نمطي شيئاً؟ الأسباب الشائعة: (1) المسافات غير المرئيّة مثل RLM أو NBSP داخل الكلمة، (2) همزات أو ياءات مختلفة في يونيكود، (3) نسيان تفعيل تعديل g، (4) خطأ هروب الحرف (escaping) لرمز خاصّ. جرّب الاستبدال على عيّنة صغيرة أوّلاً وادرس النتيجة.
بناء مكتبة أنماط مشتركة للفريق
في فرق الكتابة والتطوير، يكتب كلّ فرد أنماط regex خاصّة به وكثيراً ما يعيد اختراع نفس النمط. الحلّ هو إنشاء مكتبة أنماط مشتركة موثّقة. ابدأ بمستند Notion أو ملفّ JSON في مستودع Git يحوي: اسم النمط (مثلاً «بريد إلكترونيّ سعوديّ»)، النمط نفسه، أمثلة تطابق وعدم تطابق، شرحٌ موجز للحالات الحدّيّة، اسم المؤلّف وتاريخ الإضافة.
المكتبة المُحكَمة توفّر ساعات شهرياً. حين يحتاج زميل نمطاً لاستخراج أرقام الهويّات، يجده جاهزاً مع شرح بدل أن يكتبه من الصفر ويرتكب خطأ في الحالات الحدّيّة (هل الهويّة تبدأ بـ 1 أم 2؟ هل طولها 10 أم 11؟). كذلك تصبح المكتبة مصدراً للتدريب: المبتدئون يتعلّمون regex من أمثلة فعليّة لمشروعهم لا من تمارين عامّة.
أضف اختبارات وحدة لكلّ نمط في المكتبة. ملفّ regex-tests.json يحوي لكلّ نمط: مدخلات يجب أن تطابق، مدخلات يجب ألّا تطابق. عند تعديل النمط، شغّل الاختبار للتأكّد من عدم كسر السلوك القديم. هذا يحمي المكتبة من «التحسينات» التي تكسر استخدامات قائمة.
استراتيجيّات الاسترداد من أخطاء الاستبدال
أكبر مخاطر البحث والاستبدال هي الأخطاء التي لا تُكتشَف فوراً. استبدل «شركة» بـ «شركتنا» في وثيقة طويلة، ثمّ تكتشف بعد ساعة أنّ النمط طبَّق على «الشركة العامّة» فأنتج «الشركتنا العامّة». الاسترداد بدون نسخة احتياطيّة كابوس.
القاعدة الذهبيّة: لا تطبّق استبدالاً واسعاً قبل الحفظ. للملفّات النصّيّة، احفظ نسخة بامتداد .bak قبل العمليّة. للمستندات في Git، التزم بالحالة الحاليّة قبل الاستبدال، ثمّ التزم بالاستبدال في commit منفصل لتسهيل التراجع.
للملفّات الكبيرة (آلاف الأسطر)، استخدم نهج «معاينة ثمّ تطبيق». الأداة تعرض أوّل 10 تطابقات قبل التنفيذ — تحقّق من النوع الصحيح للتطابق وليس فقط الكميّة. تطابق 500 لا يعني نجاحاً، قد يعني تطبيقاً مفرطاً على حالات لم تقصدها.
للسير المتعدّد الخطوات (5+ استبدالات متتالية)، احفظ كلّ خطوة في وصفة (recipe) بدلاً من تطبيقها فورياً. لو اكتشفت خطأً في الخطوة 4، يمكنك العودة إلى الخطوة 3 وتعديل الخطوة 4 دون إعادة الخطوات 1-3 من جديد.
تحويلات في خطّ بيانات إنتاجيّ
عندما تصبح عمليّة تنظيف النصّ جزءاً من خطّ إنتاجيّ (تحليل بيانات، تحديث سجلّات، تحويل صيغ)، تحتاج أدوات أقوى من واجهة ويب. سكربت Python بسيط يستخدم مكتبة re القياسيّة يسرّع ألف مرّة أيّ عمل دوريّ. الأداة هنا تبقى أداة «استكشاف» تجرّب فيها الأنماط ثمّ تنقلها إلى سكربت يعمل على دفعات.
دمج السكربت في cron job لتحديثات دوريّة (كلّ ليلة، كلّ أسبوع). سجّل الإخراج في ملفّ سجلّ: عدد السجلّات المُعالَجة، عدد الاستبدالات، الأخطاء إن وجدت، ووقت التنفيذ. سجلّات دوريّة تساعدك على كشف الاتّجاهات (ثبات عدد الاستبدالات على مستوى ثابت يعني أنّ البيانات تتصل بفساد منهجيّ تحتاج إلى إصلاحه في المصدر).
للسير على ملفّات ضخمة (غيغابايت)، لا تحمّل الملفّ في الذاكرة. استخدم streaming: اقرأ سطراً سطراً بـfor line in file، طبّق الاستبدال على السطر، اكتب إلى ملفّ جديد. هذا يستهلك ذاكرة ثابتة (مستقلّة عن حجم الملفّ) ويسمح بمعالجة ملفّات 100 غيغابايت على حاسوب عاديّ.
لوثّق تحويلاتك بصرياً، استخدم أداة diff لعرض الفروقات بين الملفّ الأصليّ والمحوّل. git diff أو VS Code diff يعرض التغييرات بألوان واضحة. راجع الفروقات على عيّنة قبل الالتزام بالنتيجة في الخطّ الإنتاجيّ.
أدوات ذات صلة
أدوات أخرى مجانية على ArabToolBox، كلها تعمل في متصفّحك بدون تسجيل.
- اختبار Regexاختبر Regex على نصوص عربية وإنجليزية — مع شرح
- حذف السطور المكرّرةأربعة أوضاع مقارنة ذكيّة: تطابق تامّ، تجاهل المسافات، تجاهل الحالة، تطبيع عربيّ
- منظّف النصّ العربيّتطبيع شامل: تشكيل، تطويل، ألف، ياء، تاء مربوطة، مسافات، أرقام — في خطوة واحدة
- مقارنة نصوص عربيةقارن نصّين عربيّين واكتشف الفروقات سطراً بسطر
- محوّل حالة الأحرف11 صيغة لغويّة وبرمجيّة في وقت واحد: camelCase، snake_case، kebab-case والمزيد
- معيد الصياغة العربيأعد صياغة أي جملة عربية بأساليب متعددة: رسمي، بسيط، إبداعي