اختبار التعبيرات النمطية Regex أونلاين — JavaScript
اختبار تعبيرات JavaScript النمطية مع الأعلام وتلوين التطابقات وجدول المجموعات ومعاينة الاستبدال
تعمل في متصفحك · لا يُرفع أي شيء
ما هذه الأداة؟
من السهل أن يقع خطأ دقيق في التعبيرات النمطية. أدخل نمطًا ونصًا، فتعرض لك الأداة فورًا أين يطابق، وتلوّن كل تطابق، وتسرد التطابقات كلها مع موضعها ومجموعات الالتقاط. وأضف نص استبدال لتعاين النص بعد الاستبدال.
طريقة الاستخدام
- اكتب النمط دون الشرطتين المائلتين حوله (إذا لصقت
/pattern/giمن الشيفرة يُفصل إلى النمط وأعلامه)، مثل(\d+)-(?<word>[a-z]+). - حدد الأعلام التي تحتاجها. العلم
gالذي يجد كل التطابقات مفعّل افتراضيًا. - الصق نص الاختبار. تُلوَّن التطابقات ويسرد الجدول موضع كل تطابق ومجموعاته.
- في خانة الاستبدال استخدم
$1أو$<name>أو$&لترى النتيجة ثم انسخها. ولحذف كل التطابقات فعّل عرض الاستبدال واترك الخانة فارغة.
كيف تعمل؟
- الأعلام:
gبحث شامل، وiتجاهل حالة الأحرف، وmيجعل^و$تعملان لكل سطر، وsيسمح لـ.بمطابقة الأسطر الجديدة، وuيفعّل وضع Unicode، وyيطابق في الموضع الحالي فقط (sticky). - دون
gلا يُعاد إلا التطابق الأول. ومعgوyمعًا لا تُوجد إلا التطابقات المتتالية دون فجوات. - التطابقات الفارغة (
a*و^والنمط الفارغ) تقدّم الموضع حرفًا واحدًا ويستمر البحث، ومعuتكون الخطوة نقطة ترميز كاملة. - صياغة الاستبدال هي صياغة
String.prototype.replace:$$و$&و$`و$'و$1إلى$99و$<name>. - الضمانات: 1,000 تطابق كحد أقصى، و200,000 حرف للنص و5,000 للنمط، إضافة إلى حد تشغيل 1.5 ثانية. يعمل هذا الحد بتشغيل البحث في Web Worker وإنهائه، ولهذا لا تتجمد الصفحة الرئيسية أبدًا.
أمثلة
| النمط | الأعلام | النص | النتيجة |
|---|---|---|---|
\d+ |
g | a1 b22 c333 |
1 و22 و333 |
[ء-ي]+ |
g | abc عربي test اختبار |
عربي واختبار |
a* |
g | baac |
أربعة تطابقات في المواضع 0 و1 (aa) و3 و4 |
(?<y>\d{4})-(\d{2}) |
2024-05 |
المجموعة 1 y = 2024، والمجموعة 2 = 05 |
ملاحظات
- النطاق
[ء-ي]يلتقط الحروف العربية الأساسية من الهمزة إلى الياء، لكنه لا يشمل الحركات (U+064B إلى U+0652)، فأضفها إلى النطاق إذا كان نصك مشكولًا. ويمكن مطابقة الرموز التعبيرية بالعلمuمع\p{Emoji_Presentation}. - لا يُرسل نمطك ولا نصك إلى أي خادم.
الأسئلة الشائعة
ما نوع التعبيرات النمطية المستخدم هنا؟
تستخدم الأداة محرك التعبيرات النمطية في JavaScript (ECMAScript) المدمج في متصفحك، لذلك تختلف الصياغة في بعض المواضع عن Python أو PCRE أو Java. المحددات الكمية الاستحواذية والأعلام المضمنة مثل (?i) غير متاحة، وتُكتب المجموعات المسماة بالشكل (?<name>...).
ماذا يحدث إذا استغرق النمط وقتًا طويلًا؟
يجري البحث عن التطابقات في Web Worker منفصل يُنهى بعد 1.5 ثانية. التكرار المتداخل مثل (a+)+$ قد يتباطأ أُسيًا مع مدخلات أطول قليلًا (التراجع الكارثي). وعند حدوث ذلك تظهر رسالة وتبقى الصفحة مستجيبة.
هل توجد حدود لعدد التطابقات أو طول النص؟
تُعرض أول 1,000 تطابق، ويمكن أن يصل النص إلى 200,000 حرف والنمط إلى 5,000 حرف. وبعد ذلك تُقتطع القائمة أو تظهر رسالة بدلًا منها.
هل يمكن أن يدور نمط يطابق النص الفارغ إلى ما لا نهاية؟
لا. بعد كل تطابق فارغ يتقدم موضع البحث (lastIndex) حرفًا واحدًا، فتنتهي الحلقة دائمًا. ومع العلم u يتقدم بنقطة ترميز كاملة، فلا يُقسم الرمز التعبيري أبدًا.