كيف تبحث وتستبدل في النص العربي بالتعبيرات النمطية
البحث والاستبدال في محرر النصوص يكفي لتغيير كلمة بكلمة. لكن العربية تلصق بالكلمة حروفًا كثيرة: «ال» و«و» و«ب» و«ل» في أولها، والضمائر في آخرها. تعطيك هذه الأداة تحكمًا أدق: بحث حرفي مع خيار الكلمة الكاملة، أو تعبير نمطي (Regex) بصيغة JavaScript يطابق أنماطًا مثل «أي حركة» أو «الكلمة مع ال التعريف أو دونها».
تظهر النتيجة في خانة منفصلة مع عدد المطابقات، ولا يتغير نصك الأصلي. يعمل كل بحث في عامل معزول داخل المتصفح يتوقف بعد 600 مللي ثانية، فلا يعلّق نمط معقد الصفحة.
خطوات الاستخدام
- ألصق النص في «النص الأصلي».
- اكتب ما تبحث عنه في «البحث»، والبديل في «الاستبدال (يمكن أن يكون فارغًا)». اترك البديل فارغًا إذا أردت حذف ما يطابق.
- فعّل «كلمة كاملة» إذا أردت الكلمة وحدها، لا جزءًا من كلمة أطول.
- لاستخدام نمط بدل نص حرفي فعّل «تعبير نمطي JavaScript». وإذا وضعت جزءًا من النمط بين قوسين وأردت إعادته في البديل بـ
$1ففعّل «توسيع $1…$99 و$& و$$». - اضغط «معاينة الاستبدال». راجع عدد المطابقات، وافتح «أول 200 موضع مطابقة» لترى ما طابق تحديدًا.
- انسخ النتيجة أو نزّلها بصيغة .txt. أي تعديل في النص أو الخيارات يلغي المعاينة القديمة، فاضغط الزر مرة أخرى.
أمثلة عملية من الأداة
قرأت الكتاب، ثم أعدت كتاب الرياضيات إلى المكتبة. والكتاب الثاني بكتابه.
قرأت الكتاب، ثم أعدت دفتر الرياضيات إلى المكتبة. والكتاب الثاني بكتابه.
الإعدادات: البحث: كتاب · الاستبدال: دفتر · كلمة كاملة
قرأت الكتاب، ثم أعدت كتاب الرياضيات إلى المكتبة. والكتاب الثاني بكتابه.
قرأت الدفتر، ثم أعدت دفتر الرياضيات إلى المكتبة. والدفتر الثاني بكتابه.
الإعدادات: البحث: (و?ال)?كتاب · الاستبدال: $1دفتر · تعبير نمطي JavaScript · كلمة كاملة · توسيع $1…$99 و$& و$$
مَرْحَبًا بِكُمْ فِي الدَّوْرَةِ
مرحبا بكم في الدورة
الإعدادات: البحث: [\u064B-\u0652] · الاستبدال فارغ · تعبير نمطي JavaScript
الكلمة الكاملة والسوابق العربية
خيار «كلمة كاملة» يعني أن ما قبل المطابقة وما بعدها ليس حرفًا ولا رقمًا ولا علامة تشكيل ولا شرطة سفلية. وفي العربية تحتوي «الكتاب» و«والكتاب» و«بكتابه» كلمة «كتاب» ملتصقة بحروف أخرى، ولهذا لا يطابقها البحث عن «كتاب» كلمة كاملة. في المثال الأول تغيّرت كلمة واحدة من أربع.
الحل أن تكتب في النمط نفسه السوابق التي تقبلها. النمط (و?ال)?كتاب مع «كلمة كاملة» يطابق «كتاب» و«الكتاب» و«والكتاب»، ويترك «بكتابه» لأنها تنتهي بضمير. السابقة بين قوسين، فيعيدها $1 في البديل كما كانت. أضف ما تحتاجه من سوابق أخرى بالطريقة نفسها، مثل ب أو ل أو ف.
أنماط مفيدة للنص العربي
جرّبنا الأنماط التالية في الأداة نفسها:
[\u064B-\u0652]مع بديل فارغ يحذف الحركات والتنوين والشدة والسكون، كما في المثال الثالث. أضف\u0670داخل القوسين لتحذف الألف الخنجرية أيضًا. إذا كان هذا كل ما تريده فخيار «إزالة التشكيل الشائع» في تنظيف النص أسهل، ويشرح دليل إزالة التشكيل متى تحتفظ بالحركات.[\u0621-\u064A]+يطابق الكلمات المكتوبة بالحروف العربية الأساسية دون تشكيل.[\p{Script=Arabic}\p{M}]+يطابق الكلمة العربية كاملة مع حركاتها.[أاإآ]حمديطابق «أحمد» و«احمد» و«إحمد»، وهي طريقة للبحث عن اسم كُتب بصور مختلفة للألف.(?<=\p{Script=Arabic}) ?, ?مع البديل «، » يحوّل الفاصلة الإنجليزية بعد كلمة عربية إلى فاصلة عربية، ويترك الفواصل بين الكلمات الإنجليزية كما هي.
وانتبه إلى أمرين. الأول: الرمز \b في JavaScript لا يعرف الحروف العربية، فالنمط \bكتاب\b لا يطابق شيئًا حتى لو جاءت الكلمة وحدها. استخدم «كلمة كاملة» بدلًا منه. الثاني: النمط \p{Script=Arabic}+ وحده يقطع الكلمة المشكولة عند كل حركة، لأن Unicode لا ينسب الحركات إلى الخط العربي، بل يعدّها علامات «موروثة» تتبع الحرف الذي قبلها. لهذا أضفنا \p{M} في النمط أعلاه.
أخطاء شائعة
- ظهور
$1حرفيًا في النتيجة: لم تفعّل «توسيع $1…$99 و$& و$$». يُكتب البديل كما هو افتراضيًا. - النقطة تطابق أي محرف: في وضع التعبير النمطي تعني النقطة أي محرف، فالبحث عن
3.5يطابق 345 أيضًا. اكتب3\.5، أو أوقف خيار التعبير النمطي إذا كنت تبحث عن نص حرفي. - العلامتان ^ و$ تطابقان بداية النص كله ونهايته: فعّل «^ و$ لكل سطر (m)» إذا أردت بداية كل سطر.
- انتهاء المهلة: بعض الأنماط المتداخلة مثل
(a+)+$تستغرق وقتًا طويلًا جدًا. توقف الأداة البحث بعد 600 مللي ثانية دون نتيجة جزئية، ويبقى الأصل كما هو. بسّط النمط وأعد المحاولة.
حدود الأداة
- حتى 50,000 وحدة نصية في النص، و300 للنمط، و1,000 للبديل، و10,000 مطابقة، و100,000 للنتيجة.
- «كلمة كاملة» لا تعرف السوابق واللواحق العربية، والأداة لا تحلل الكلمات صرفيًا. لا تعرف مثلًا أن «كتب» و«مكتبة» من جذر واحد.
- البحث لا يوحّد الهمزات ولا التاء المربوطة ولا التشكيل. «أحمد» لا تطابق «احمد» إلا إذا كتبت نمطًا يشملهما.
- تُعرض مواضع أول 200 مطابقة فقط، وتُعد المواضع بوحدات UTF-16 بدءًا من الصفر.
أسئلة شائعة
كيف أحذف التشكيل بالتعبير النمطي؟
فعّل «تعبير نمطي JavaScript»، واكتب في البحث [\u064B-\u0652]، واترك البديل فارغًا، ثم اضغط «معاينة الاستبدال».
لماذا لا يجد خيار «كلمة كاملة» كلمة «الكتاب» عند البحث عن «كتاب»؟
لأن «ال» جزء من الكلمة نفسها، فالحرف قبل «كتاب» لام وليس مسافة. اكتب السابقة في النمط، مثل (و?ال)?كتاب، مع تفعيل التعبير النمطي.
هل يؤثر خيار «مطابقة حالة الأحرف» في العربية؟
لا. العربية لا تعرف الحروف الكبيرة والصغيرة، فالخيار يخص الحروف اللاتينية وحدها.
هل أستطيع تبديل ترتيب كلمتين؟
نعم. النمط (\p{L}+) (\p{L}+) مع البديل $2 $1 وتفعيل توسيع المجموعات يحوّل «سارة أحمد» إلى «أحمد سارة».
هل يُرسل النص أو النمط إلى خادم؟
لا. يعمل البحث في عامل داخل متصفحك، وتبقى البيانات على جهازك.
