مختبر التعبيرات النمطية Regex
يختبر تعبيراً نمطياً (regex) على نص ويعرض المطابقات والمجموعات مباشرة، مع الأعلام g وi وm وs وu وأمثلة جاهزة للنص العربي.
يُختبر النص والنمط في متصفحك ولا يُرسلان إلى أي خادم. تستخدم الأداة محرك RegExp المدمج في JavaScript فقط، دون eval ولا تنفيذ شيفرة ولا ذكاء اصطناعي. لا تطابق كل ميزات PCRE أو Python أو .NET، وليست بديلاً عن مدقق احترافي لعناوين البريد أو الروابط.
جرّب أداة أخرى
اخترناها لتكمل هذه الأداةمختبر Regex يجرّب تعبيراً نمطياً على نص تكتبه، ويعرض كل مطابقة ومجموعاتها وعددها فور الكتابة، مع زر لنسخ التعبير بصيغة JavaScript أو نسخ المطابقات. الأعلام g وi وm وs وu متاحة، ولكل منها شرح قصير. يستخدم المختبر محرك RegExp المدمج في المتصفح، فما يعمل هنا يعمل في JavaScript. وللنص العربي فخاخ خاصة تكشفها الأمثلة الجاهزة: \w لا يطابق الحروف العربية، و\d لا يطابق الأرقام الهندية ١٢٣، والتشكيل حروف مستقلة في يونيكود.
طريقة الاستخدام
- 01اكتب النمطاكتب التعبير دون الشرطتين المائلتين، مثل \p{Script=Arabic}+ أو \d+.
- 02اختر الأعلامg لكل المطابقات، وi لتجاهل حالة الأحرف اللاتينية، وu لدعم يونيكود الكامل الذي تحتاجه فئات الحروف العربية.
- 03الصق النص واقرأ النتائجتظهر المطابقات مرقمة مع موقعها ومجموعاتها، ويمكنك نسخها أو نسخ التعبير.
متى تفيدك هذه الأداة؟
- تنظيف البياناتإيجاد أرقام الهواتف أو الرموز أو التشكيل في نص قبل معالجته.
- التحقق من الحقولتجربة نمط التحقق من حقل نموذج قبل وضعه في الشيفرة.
- تعلم التعبيرات النمطيةرؤية أثر كل علم وكل رمز فوراً على نص حقيقي.
أمثلة
- الكلمات العربية فقطالنمط \p{Script=Arabic}+ مع العلمين g وu على جملة فيها كلمات إنجليزية يطابق الكلمات العربية الست ويتجاهل Tooleem وHello.
- الأرقام بنوعيها\d يطابق الأرقام الغربية فقط، ولو مع العلم u. لمطابقة ١٢٣٤٥ و2026 معاً استخدم [0-9\u0660-\u0669]+.
- علامات التشكيلالنمط [\u064B-\u0652] يطابق الفتحة والضمة والكسرة والسكون والشدة والتنوين، فيجد 7 علامات في عبارة «مَرْحَبًا بِكُمْ». استبدلها بنص فارغ لتحصل على نص بلا تشكيل.
- الشدة تقطع الكلمة\p{Script=Arabic}+ يقسم كلمة «رحّب» إلى «رح» و«ب» لأن الشدة مصنّفة حرفاً موروثاً لا عربياً. استخدم \p{Script_Extensions=Arabic}+ لتبقى الكلمة كاملة، مع أنه يطابق الفاصلة العربية أيضاً.
نصائح لنتيجة أفضل
- u أولاً مع العربيةدون العلم u لا تعمل \p{...} أصلاً، وتُعامل بعض الرموز كنصفين. فعّله كلما تعاملت مع العربية أو الرموز التعبيرية.
- اختبر الحالات الحديةأضف إلى نصك أمثلة يجب ألا تطابق، مثل بريد بعلامتي @، لتتأكد أن النمط لا يلتقط أكثر مما تريد.
الأعلام الخمسة
g يعيد كل المطابقات بدل الأولى. وi يتجاهل الفرق بين الأحرف اللاتينية الكبيرة والصغيرة، ولا أثر له في العربية التي لا تعرف هذا الفرق. وm يجعل ^ و$ لبداية كل سطر ونهايته. وs يجعل النقطة تطابق السطر الجديد. وu يفعّل يونيكود الكامل وفئات الخصائص مثل \p{L}.
لماذا لا يطابق \w الحروف العربية؟
في JavaScript يساوي \w الفئة [A-Za-z0-9_] فقط، حتى مع العلم u. لمطابقة أي حرف في أي لغة استخدم \p{L}، ولحروف العربية تحديداً \p{Script=Arabic}. ومثله \b حدود الكلمة، فهو مبني على \w ولا يرى حدود الكلمات العربية.
حدود المختبر
المحرك محرك JavaScript، فبعض ميزات PCRE أو Python أو .NET لا تعمل هنا كما تعمل هناك. ويعرض المختبر أول 100 مطابقة ويقبل نصاً حتى 100000 حرف حفاظاً على سرعة الصفحة، ولا يغني عن مدقق متخصص لعناوين البريد أو الروابط.
أسئلة شائعة
كيف أطابق الحروف العربية في Regex؟
استخدم \p{Script=Arabic} مع العلم u، أو النطاق [\u0600-\u06FF] في المحركات التي لا تدعم خصائص يونيكود.
كيف أحذف التشكيل من نص عربي؟
استبدل كل ما يطابق [\u064B-\u0652] بنص فارغ، مع العلم g.
لماذا لا يطابق \d الأرقام العربية الهندية؟
لأن \d في JavaScript يعني 0 إلى 9 الغربية فقط. أضف النطاق \u0660-\u0669 إلى الفئة.
هل يختلف Regex في JavaScript عن Python؟
في تفاصيل كثيرة، مثل المجموعات المسماة وبعض الفئات. المختبر يطبق قواعد JavaScript تحديداً.
هل يُرسل النص الذي أختبره إلى خادم؟
لا، يُختبر النص والنمط في متصفحك فقط.

