المحرر
بانتظار الإدخال أو تنفيذ التعبير النمطي…
الإجراءات
لماذا تستخدم مختبر التعبيرات النمطية هذا
- مطابقة فورية مع وضع "مباشر" اختياري لإعادة التشغيل أثناء الكتابة
- قائمة مطابقات منظمة مع الفهرس البداي، الفهرس النهائي، القيمة ومجموعات الالتقاط المسماة
- دعم كامل لبناء جملة RegExp في JavaScript/ECMAScript (نفس محرك وقت تشغيل JS الخاص بك)
- عناصر تحكم العلم: g, i, m, s, u, y – ادمج وجرب بأمان
- نظرة أساسية على الأداء مع وقت التنفيذ لكل تشغيل بالميلي ثانية
- مخرج ملخص نصي فقط للنسخ/اللصق السريع في التذاكر، المستندات أو رسائل الالتزام
- ممتاز للتعلم: أنماط النماذج الأولية دون تشغيل مشروع كامل أو مجموعة اختبار
- مثالي للمهام اليومية: تحليل السجلات، التحقق من الصحة، استخراج URL / المعرف، تنظيف البيانات السريع
- قائمة النتائج محدودة برفق لتجنب تجميد واجهة المستخدم عند مطابقة النصوص الكبيرة
🔧 كيفية استخدام مختبر التعبيرات النمطية for regex-tester
1. الصق أو اكتب نص الاختبار الخاص بك
أضف النص الذي تريد البحث فيه: السجلات، المقاطع، أجزاء CSV، HTML، JSON، أي شيء نص عادي.
2. اكتب نمط التعبير النمطي الخاص بك
أدخل التعبير النمطي **بدون شرطات مائلة محيطة**. على سبيل المثال: <code>\b\w+@\w+\.\w+</code> لنمط بريد إلكتروني أساسي، أو <code>(?<year>\d{4})-(?<month>\d{2})-(?<day>\d{2})</code> بمجموعات مسماة.
3. عيّن الأعلام (g, i, m, s, u, y)
بدّل الأعلام مثل <code>g</code> (عالمي)، <code>i</code> (غير حساس لحالة الأحرف) أو <code>m</code> (متعدد الأسطر). داخلياً، يبني المختبر <code>new RegExp(pattern, flags)</code> تماماً مثل JavaScript.
4. افحص المطابقات والمجموعات
راجع كل مطابقة مع فهرسها، الفهرس النهائي الاختياري ومجموعات الالتقاط. تظهر المجموعات المسماة كخريطة شبيهة بـ JSON حتى تتمكن من نسخها في تجهيزات الاختبار، المحللات أو التوثيق.
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> تطابق حدود الأسطر |
| s | DotAll | <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
❓لماذا لا يتطابق تعبيري النمطي مع أي شيء؟
.، ?، +)، 2) نسيان علم g عند توقع تطابقات متعددة، 3) فقدان المراسي (^، $) أو حدود الكلمات (\b)، 4) استخدام ميزات لا يدعمها محرك JavaScript الخاص بك بعد (مثل بعض lookbehinds). حاول تبسيط النمط وإضافة الأجزاء تدريجيًا.⏱️ماذا يعني وقت التنفيذ (مللي ثانية)؟
performance.now(). القيمة هي قياس تقريبي لتشغيل واحد لمدى استغراق التعبير النمطي للتنفيذ على الإدخال الحالي. إنه مفيد لاكتشاف الأنماط المكلفة بوضوح، لكنه ليس معيارًا كاملاً أو ضمانًا لأداء الإنتاج.🔍ما الفرق بين وضع المطابقة الأولى والوضع العام؟
g، يُرجع JavaScript المطابقة **الأولى** فقط (إن وجدت). باستخدام g، يستخدم الاختبار input.matchAll() لجمع **جميع** المطابقات (محدودة بحد أقصى آمن)، بما في ذلك المؤشرات ومجموعات الالتقاط. استخدم الوضع العام كلما اهتممت بتكرارات متعددة.🌍هل يدعم هذا يونيكود وهروب <code>\p{...}</code>؟
u للدخول في وضع يونيكود، الذي يفتح أشياء مثل \p{Letter} أو \p{Script=Greek} في المتصفحات الحديثة وإصدارات Node.js الحديثة.⚠️هل يمكن لهذا الكشف عن التراجع الكارثي؟
Pro Tips
أنشئ تعبيرك النمطي في أجزاء صغيرة. ابدأ بشيء بسيط يتطابق، ثم أضف المراسي والمجموعات والمحددات خطوة بخطوة.
استخدم مجموعات الالتقاط المسماة (<code>(?<name>...)</code>) كلما أمكن. إنها تجعل مطابقاتك موثقة ذاتيًا وأسهل بكثير للقراءة خلال مراجعات الكود.
كن حذرًا مع <code>.*</code> والمحددات المتداخلة. يمكن أن تسبب تراجعًا شديدًا على المدخلات الكبيرة. اجعل الأنماط أكثر تحديدًا أو قلل التكرار باستخدام <code>{n,m}</code>.
عند تصحيح الأخطاء، أزل علم <code>g</code> مؤقتًا وركز على المطابقة الأولى لتبسيط النموذج الذهني.
Additional Resources
Other Tools
- محسن CSS
- محسن HTML
- محسن Javascript
- محسن PHP
- منتقي الألوان
- مستخرج Sprite
- فك تشفير Base64
- تشفير Base64
- منسق Csharp
- منسق CSV
- Dockerfile Formatter
- منسق Elm
- منسق ENV
- منسق Go
- منسق Graphql
- منسق Hcl
- منسق INI
- منسق JSON
- منسق Latex
- منسق Markdown
- منسق Objectivec
- Php Formatter
- منسق Proto
- منسق Python
- منسق Ruby
- منسق Rust
- منسق Scala
- منسق سكريبت Shell
- منسق SQL
- منسق SVG
- منسق Swift
- منسق TOML
- Typescript Formatter
- منسق XML
- منسق YAML
- منسق Yarn
- مختصر CSS
- Html Minifier
- Javascript Minifier
- مختصر JSON
- مصغر XML
- عارض رؤوس HTTP
- PDF إلى نص
- مدقق ترتيب SERP
- بحث Whois