المحرر

بانتظار الإدخال أو تنفيذ التعبير النمطي…

الإجراءات

?
?
?

حول مختبر تعبيرات نمطية عبر الإنترنت

الصق بعض النص، اكتب نمط تعبير نمطي، وشغل الأعلام وشاهد ما يتطابق على الفور. يستخدم هذا المختبر نفس محرك RegExp مثل بيئات تشغيل جافاسكريبت الحديثة، لذا ما تراه هنا هو ما ستحصل عليه في كود الواجهة الأمامية، أو نصوص Node.js، أو التحقق من جانب الخادم. مجموعات الالتقاط المسماة، والمحيطات والدليلية Unicode مدعومة عندما تدعمها بيئة التشغيل الخاصة بك.

لماذا تستخدم مختبر التعبيرات النمطية هذا

  • مطابقة فورية مع وضع "مباشر" اختياري لإعادة التشغيل أثناء الكتابة
  • قائمة مطابقات منظمة مع الفهرس البداي، الفهرس النهائي، القيمة ومجموعات الالتقاط المسماة
  • دعم كامل لبناء جملة RegExp في JavaScript/ECMAScript (نفس محرك وقت تشغيل JS الخاص بك)
  • عناصر تحكم العلم: g, i, m, s, u, y – ادمج وجرب بأمان
  • نظرة أساسية على الأداء مع وقت التنفيذ لكل تشغيل بالميلي ثانية
  • مخرج ملخص نصي فقط للنسخ/اللصق السريع في التذاكر، المستندات أو رسائل الالتزام
  • ممتاز للتعلم: أنماط النماذج الأولية دون تشغيل مشروع كامل أو مجموعة اختبار
  • مثالي للمهام اليومية: تحليل السجلات، التحقق من الصحة، استخراج URL / المعرف، تنظيف البيانات السريع
  • قائمة النتائج محدودة برفق لتجنب تجميد واجهة المستخدم عند مطابقة النصوص الكبيرة

🔧 كيفية استخدام مختبر التعبيرات النمطية for regex-tester

1

1. الصق أو اكتب نص الاختبار الخاص بك

أضف النص الذي تريد البحث فيه: السجلات، المقاطع، أجزاء CSV، HTML، JSON، أي شيء نص عادي.

2

2. اكتب نمط التعبير النمطي الخاص بك

أدخل التعبير النمطي **بدون شرطات مائلة محيطة**. على سبيل المثال: <code>\b\w+@\w+\.\w+</code> لنمط بريد إلكتروني أساسي، أو <code>(?<year>\d{4})-(?<month>\d{2})-(?<day>\d{2})</code> بمجموعات مسماة.

3

3. عيّن الأعلام (g, i, m, s, u, y)

بدّل الأعلام مثل <code>g</code> (عالمي)، <code>i</code> (غير حساس لحالة الأحرف) أو <code>m</code> (متعدد الأسطر). داخلياً، يبني المختبر <code>new RegExp(pattern, flags)</code> تماماً مثل JavaScript.

4

4. افحص المطابقات والمجموعات

راجع كل مطابقة مع فهرسها، الفهرس النهائي الاختياري ومجموعات الالتقاط. تظهر المجموعات المسماة كخريطة شبيهة بـ JSON حتى تتمكن من نسخها في تجهيزات الاختبار، المحللات أو التوثيق.

5

5. انسخ الملخص

استخدم الملخص النصي كتقرير سريع: يسرد المطابقات مع الفهارس والمجموعات، جاهز للصق في التذاكر، تعليقات مراجعة الكود أو أوراق الغش.

تفاصيل بناء جملة التعبيرات النمطية والمحرك

فئات الأحرف والأساسيات

لبنات البناء الأساسية المدعومة من محرك JavaScript RegExp.

النمطالمعنىمثال
.أي حرف باستثناء فواصل الأسطر (ما لم يكن علم <code>s</code>)<code>a.c</code> → يطابق <code>abc</code>
\d, \w, \sأرقام، أحرف كلمات، مسافات بيضاء<code>\d+</code> → <code>123</code>
\D, \W, \Sإصدارات منفية مما سبق<code>\S+</code> → سلاسل غير مسافات بيضاء
[abc]مجموعة أحرف<code>[aeiou]</code> → حرف علة واحد
[^abc]مجموعة منفية<code>[^0-9]</code> → غير رقمي
^, $بداية ونهاية الإدخال (أو السطر مع <code>m</code>)<code>^Hello</code>, <code>!$</code>

المحددات الكمية

تكرار الرموز السابقة، مع سلوك جشع وكسول.

النمطالمعنىمثال
?0 أو 1 مرة<code>colou?r</code> → يطابق <code>color</code> و <code>colour</code>
*0 أو أكثر<code>a*b</code> → <code>b</code>, <code>aaab</code>
+1 أو أكثر<code>\d+</code> → <code>1</code>, <code>123</code>
{n}بالضبط n<code>a{3}</code> → <code>aaa</code>
{n,}على الأقل n<code>\d{3,}</code> → <code>123</code>, <code>1234</code>
{n,m}بين n و m<code>a{2,4}</code> → <code>aa</code>, <code>aaa</code>, <code>aaaa</code>

المجموعات، النظرات الجانبية والتقاطات مسماة

ميزات أكثر تقدمًا توفرها محركات جافا سكريبت الحديثة.

الميزةالصياغةمثال
مجموعات الالتقاط(...)<code>(\d{3})-(\d{2})</code> → المنطقة + اللاحقة
مجموعات غير ملتقطة(?:...)<code>(?:https?|ftp)://</code>
المراجع الخلفية\1, \2, ...<code>(\w)\1</code> → <code>aa</code>, <code>bb</code>
النظر للأمام(?=...), (?!...)<code>\w+(?=! )</code> → الكلمة قبل <code>! </code>
النظر للخلف*(?<=...), (?<!...)<code>(?<=#)\w+</code> → النص بعد <code>#</code> (*في المحركات الحديثة)
المجموعات المسماة(?<name>...)<code>(?<year>\d{4})</code> → <code>groups.year</code> في النتائج

الأعلام (الخيارات)

تطابق أعلام المُختَبِر مباشرةً مع أعلام JavaScript RegExp.

العلمالاسمالتأثير
gعامالبحث عن جميع المطابقات بدلاً من الأولى فقط
iتجاهل حالة الأحرفمطابقة غير حساسة لحالة الأحرف
mمتعدد الأسطر<code>^</code> و <code>$</code> تطابق حدود الأسطر
sDotAll<code>.</code> يطابق أيضاً فواصل الأسطر
uيونيكوديُفعّل وضع اليونيكود وهروب الخصائص في المحركات الحديثة
نعمثابتيطابق الفهرس الحالي فقط (يستخدم مع <code>lastIndex</code>)

الأداء والسلامة

محرك جافا سكريبت الأساسي ينفذ التعبيرات النمطية بشكل متزامن. للحفاظ على استجابة واجهة المستخدم، يحدد المُختبر عدد المطابقات المجمعة (مثل أول 500 نتيجة في الوضع العام). هذا يساعد في تجنب إغراق واجهة المستخدم، لكنه لا يحل محل عمليات تدقيق الأداء الكاملة للأنماط المعقدة أو الحرجة.

أدوات التعبيرات النمطية في سطر الأوامر

بمجرد أن يعمل النمط هنا، يمكنك إعادة استخدام نفس التعبير النمطي أو ما يشابهه في طرفيتك، أو البرامج النصية، أو مهام التكامل المستمر:

لينكس / ماك أو إس

البحث باستخدام grep (تعبير نمطي موسع)

grep -E 'pattern' file.txt

البحث عن الأسطر التي تطابق نمطاً معيناً

البحث والاستبدال باستخدام sed

sed -E 's/pattern/replacement/g' input.txt > output.txt

عمليات الاستبدال المجمعة في ملفات النص

ويندوز / PowerShell

بحث PowerShell بالتعبيرات النمطية

Select-String -Pattern '\d{3}-\d{2}-\d{4}' -Path logs.txt

البحث عن أنماط أرقام الضمان الاجتماعي الأمريكية في ملفات السجلات (مثال)

استبدال PowerShell بالتعبيرات النمطية

(Get-Content input.txt) -replace 'old', 'new' | Set-Content output.txt

عمليات الاستبدال البسيطة القائمة على التعبيرات النمطية

التطبيقات العملية للتعبيرات النمطية

تطوير الويب والواجهة الأمامية

  • التحقق من صحة البريد الإلكتروني، وأسماء المستخدمين، والعناوين، أو المعرفات المخصصة في النماذج
  • استخراج معلمات المسار من عناوين URL أو المسارات
  • إنشاء نماذج أولية سريعة للتحقق من صحة جانب العميل
// التحقق من صحة البريد الإلكتروني الأساسي
/^[\w.+-]+@[\w.-]+\.[A-Za-z]{2,}$/i.test(email);
// معلمات المسار: /post/123
const match = pathname.match(/^\/post\/(\d+)/);

السجلات، البيانات، والخلفية

  • تحليل الطوابع الزمنية والمستويات من أسطر السجلات
  • تطبيع المسافات البيضاء وتنظيف النص غير المنتظم
  • استخراج المعرفات، والبريد الإلكتروني، أو المراجع من المحتوى غير المنظم
// ضغط المسافات البيضاء المتكررة
const normalized = text.replace(/\s+/g, ' ').trim();
// مطابق بسيط لأسطر السجلات
const m = line.match(/\[(?<date>\d{4}-\d{2}-\d{2})] (?<level>INFO|ERROR): (?<msg>.*)/);

تنظيف البيانات والبرامج النصية السريعة

  • إزالة وسوم HTML أو السمات غير المرغوب فيها قبل التحليل
  • استخراج جميع عناوين URL، أو البريد الإلكتروني، أو المعرفات من كتلة نص طويلة
  • إعداد حقول مجموعة البيانات للاستيراد إلى نظام آخر

❓ Frequently Asked Questions

لماذا لا يتطابق تعبيري النمطي مع أي شيء؟

المزالق الشائعة: 1) الأحرف الخاصة غير محمية (مثل .، ?، +)، 2) نسيان علم g عند توقع تطابقات متعددة، 3) فقدان المراسي (^، $) أو حدود الكلمات (\b)، 4) استخدام ميزات لا يدعمها محرك JavaScript الخاص بك بعد (مثل بعض lookbehinds). حاول تبسيط النمط وإضافة الأجزاء تدريجيًا.

⏱️ماذا يعني وقت التنفيذ (مللي ثانية)؟

يتم توقيت كل تشغيل باستخدام performance.now(). القيمة هي قياس تقريبي لتشغيل واحد لمدى استغراق التعبير النمطي للتنفيذ على الإدخال الحالي. إنه مفيد لاكتشاف الأنماط المكلفة بوضوح، لكنه ليس معيارًا كاملاً أو ضمانًا لأداء الإنتاج.

🔍ما الفرق بين وضع المطابقة الأولى والوضع العام؟

بدون علم g، يُرجع JavaScript المطابقة **الأولى** فقط (إن وجدت). باستخدام g، يستخدم الاختبار input.matchAll() لجمع **جميع** المطابقات (محدودة بحد أقصى آمن)، بما في ذلك المؤشرات ومجموعات الالتقاط. استخدم الوضع العام كلما اهتممت بتكرارات متعددة.

🌍هل يدعم هذا يونيكود وهروب <code>\p{...}</code>؟

نعم، عندما يدعمه محرك JavaScript الخاص بك. فعّل علم u للدخول في وضع يونيكود، الذي يفتح أشياء مثل \p{Letter} أو \p{Script=Greek} في المتصفحات الحديثة وإصدارات Node.js الحديثة.

⚠️هل يمكن لهذا الكشف عن التراجع الكارثي؟

يمكن للاختبار أن يشير إلى الأنماط البطيئة عبر وقت التنفيذ، لكنه لا يمكنه منع التراجع الكارثي بالكامل: المحرك الأساسي لا يزال يعمل بشكل متزامن. استخدم هذه الأداة كنظام إنذار مبكر، ثم قم بمعايرة ومراجعة الأنماط المعقدة بعناية في قاعدة الكود الخاصة بك.

Pro Tips

Best Practice

أنشئ تعبيرك النمطي في أجزاء صغيرة. ابدأ بشيء بسيط يتطابق، ثم أضف المراسي والمجموعات والمحددات خطوة بخطوة.

Best Practice

استخدم مجموعات الالتقاط المسماة (<code>(?<name>...)</code>) كلما أمكن. إنها تجعل مطابقاتك موثقة ذاتيًا وأسهل بكثير للقراءة خلال مراجعات الكود.

Best Practice

كن حذرًا مع <code>.*</code> والمحددات المتداخلة. يمكن أن تسبب تراجعًا شديدًا على المدخلات الكبيرة. اجعل الأنماط أكثر تحديدًا أو قلل التكرار باستخدام <code>{n,m}</code>.

Best Practice

عند تصحيح الأخطاء، أزل علم <code>g</code> مؤقتًا وركز على المطابقة الأولى لتبسيط النموذج الذهني.

Additional Resources

Other Tools