اختبار ومتخيل regex مجانًا عبر الإنترنت. اكتب تعبيرًا عاديًا لـ JavaScript وشاهده مرسومًا كرسم تخطيطي تفاعلي، مشروحًا باللغة الإنجليزية البسيطة ومطابقته مباشرة مع مجموعات التقاط مرمزة بالألوان. استبدال واستخراج واختبار الوحدة وتصدير التعليمات البرمجية، بدون تسجيل.
اختبار وتصحيح وفهم التعبيرات العادية في مكان واحد. اكتب نمطًا وسيتم رسمه على الفور كمخطط سكك حديدية تفاعلي، مشروحًا برمز مميز برمز مميز باللغة الإنجليزية البسيطة، وقم بتشغيله مباشرةً على النص الخاص بك مع تمييز كل تطابق والتقاط مجموعة بالألوان. استبدال واستخراج وتقسيم وكتابة اختبارات الوحدة وتصدير كود العمل لـ 9 لغات والحصول على تحذير بشأن التراجع الكارثي، كل ذلك داخل متصفحك.
يخبرك معظم مختبري التعبير العادي فقط ما إذا كان النمط مطابقًا أم لا. هذا يوضح لك أيضًا السبب. أثناء الكتابة، يتم تحليل التعبير العادي ورسمه كمخطط للسكك الحديدية: خريطة من اليسار إلى اليمين حيث يكون كل مسار عبر المخطط عبارة عن سلسلة يمكن للنمط مطابقتها. قم بتحريك أي مربع وستضيء الأحرف المطابقة في النمط الخاص بك، ويخبرك الوصف باللغة الإنجليزية البسيطة بما تفعله هذه القطعة بالضبط. حرك مؤشر النص عبر النمط وسيتبعه الرسم التخطيطي. في الأسفل، يتم تشغيل النمط الخاص بك مباشرةً مع نص الاختبار الخاص بك مع تمييز كل تطابق وكل مجموعة التقاط بلونها الخاص، حتى تتمكن من رؤية ما هو مطابق ولماذا في نفس الوقت.
سمات
رسم تخطيطي تفاعلي للسكك الحديدية لأي نمط: قم بتمرير مربع لإضاءةه في التعبير العادي
شرح باللغة الإنجليزية البسيطة لكل رمز مميز ومجموعة ومحدد كمي وأداة بحث
تسليط الضوء على المباراة الحية مع مجموعات الالتقاط المرمزة بالألوان داخل النص
انقر على إحدى التطابقات لترى ما التقطته كل مجموعة، مباشرة على الرسم التخطيطي
محرر أنماط بناء الجملة الملون الذي يتبع المؤشر
جميع أعلام JavaScript: g وi وm وs وu وv (مجموعات Unicode) وy
استبدل بـ $1، $<name>، $& وتمييز قبل/بعد المعاينة
قم باستخراج التطابقات إلى قائمة تحتوي على قوالب وفرز فريد وتصدير CSV وJSON
تقسيم النص حسب التعبير العادي، واختبارات الوحدة التي يجب (أو لا يجب) أن تتطابق
اكتب تعبيرًا عاديًا (يؤدي لصق /pattern/flags إلى تقسيمه تلقائيًا)، أو اختر واحدًا من مكتبة الأنماط، أو قم بإنشاء واحد من الأمثلة في علامة التبويب Build.
2
تبديل الأعلام
انقر فوق g أو i أو m أو s أو u أو v أو y لتغيير سلوك المطابقة؛ قم بتحريك العلم لمعرفة ما يفعله.
3
قراءة الرسم البياني البصري
قم بتحريك الماوس أو النقر فوق أي مربع في الرسم التخطيطي للسكك الحديدية، أو قم بالتبديل إلى الشرح، لمعرفة ما يعنيه كل جزء من النموذج.
4
اختبار ضد النص الخاص بك
لصق النص في سلسلة الاختبار؛ المباريات ومجموعات الالتقاط تسلط الضوء على الهواء مباشرة. انقر فوق تطابق لرؤية قيمة كل مجموعة في الرسم التخطيطي.
5
استبدال أو استخراج أو اختبار
استخدم اختبارات الاستبدال والاستخراج والتقسيم والوحدة للتحقق من أن النمط يفعل ما تحتاجه بالضبط.
6
تصدير أو مشاركة
انسخ كود العمل الخاص بلغتك من علامة التبويب Code، أو قم بتنزيل الرسم التخطيطي بتنسيق SVG/PNG، أو انسخ رابط المشاركة.
حالات الاستخدام الشائع
فهم التعبير العادي المعقد الذي ورثته، مربع رسم تخطيطي واحد في كل مرة
تصحيح سبب عدم تطابق التعبير العادي مع بياناتك
تحقق من صحة البريد الإلكتروني أو عنوان URL أو الهاتف أو نمط كلمة المرور قبل شحنه
استخراج الحقول من خطوط السجل مع مجموعات الالتقاط المسماة
قم بصياغة ومعاينة البحث والاستبدال بمراجع المجموعة
قم بنقل تعبير JavaScript العادي إلى Python أو PHP أو Go أو Java
التحقق من نمط التراجع الكارثي (ReDoS)
تعليم أو تعلم التعبيرات العادية مع شرح مرئي
دليل مفصل
كيفية قراءة مخطط السكك الحديدية ريجكس
تتم قراءة الرسوم البيانية للسكك الحديدية (بناء الجملة) مثل مسار القطار: ابدأ من النقطة الموجودة على اليسار، واتبع أي طريق حتى النهاية، وتشكل الأحرف التي تمر عبرها سلسلة يقبلها التعبير العادي. الفروع تعني البدائل، والمسار الذي يتكرر بالأسفل يعني التكرار، والمسار الذي يتجاوز المربع أعلاه يعني أن هذا الجزء اختياري. الإطارات الملونة هي مجموعات التقاط (يتم استخدام نفس الألوان في المطابقات المميزة)، والإطارات المتقطعة عبارة عن نقاط بحث يتم التحقق منها دون استهلاك النص، والمربعات على شكل قرص هي نقاط ارتساء تتطابق مع موضع بدلاً من حرف. انقر فوق تطابق في النتائج وسيعرض كل إطار مجموعة القيمة الدقيقة التي التقطها، أو "لا يوجد تطابق" إذا تم تخطي هذه المجموعة.
في الرسم البياني
بناء جملة ريجكس
معنى
مربع مع النص المقتبس
اي بي سي \. \n
هذه الشخصيات بالضبط
مربع القائمة "واحد من:"
[a-z0-9_]
أي شخصية واحدة من المجموعة
مربع القائمة "لا شيء من:"
[^\s@]
أي حرف واحد ليس في المجموعة
المربع الأخضر (رقم، حرف الكلمة...)
\d \w \s .
اختصار فئة الأحرف
علبة على شكل حبة دواء
^ $ \b
المرساة: منصب، وليس شخصية
تتبع الانقسامات إلى فروع
قطة|كلب
إما البديل
حلقات المسار مرة أخرى تحتها
+ * {2,5}
كرر (يوضح الملصق عدد المرات)
المسار الالتفافي أعلاه
? * {0,3}
الجزء اختياري
حلقة متقطعة
+? *?
كسول: كرر أقل عدد ممكن من المرات
إطار ملون "الاسم رقم 1"
(…) (؟<الاسم>…)
مجموعة الالتقاط، مرقمة من اليسار إلى اليمين
إطار متقطع "متبوعًا بـ:"
(?=…) (?!…) (?<=…)
أنظر إلى الأمام / أنظر إلى الخلف
ورقة الغش في Regex: بناء الجملة الذي ستستخدمه كل يوم
افتح ورقة الغش المضمنة أعلى جهاز الاختبار وانقر فوق أي رمز مميز لإدراجه في المؤشر. هذه هي اللبنات الأساسية لكل نمط تقريبًا:
رمز مميز
مباريات
مثال
\d
رقم 0-9
\d{4} يطابق 2026
\w
حرف أو رقم أو الشرطة السفلية
\w+ يطابق user_42
\s
مسافة بيضاء (مسافة، علامة تبويب، سطر جديد)
a\sb يطابق 'a b'
.
أي حرف باستثناء فاصل الأسطر
أ.ج يتطابق مع أبك، أ-ج
[اي بي سي] / [^ اي بي سي]
واحد من/لا شيء من الشخصيات المدرجة
[aeiou] يطابق حرف علة
^ و $
بداية ونهاية السلسلة (أو السطر مع م)
^\d+$ عبارة عن أرقام فقط
\b
حد كلمة
\bcat\b يتخطى "التسلسل"
* + ?
0+، 1+، أو 0-1 التكرار
اللون يطابق اللون واللون
{n,m}
بين التكرارات n وm
\d{2,4}
(…) و (؟<الاسم>…)
التقاط المجموعة / المجموعة المسماة
(?<السنة>\d{4})
(?:…)
المجموعة دون التقاط
(?:ab)+
\1، \ك<الاسم>
نفس النص كمجموعة سابقة
(\w)\1 يطابق 'll'
(?=…) (?!…)
يتبعه / لا يتبعه
\d+(?=px)
(?<=…) (?<!…)
يسبقه / لا يسبقه
(?<=\$)\d+
وأوضح أعلام Regex
تغير الأعلام كيفية تصرف النمط بأكمله. تبديلها بنقرة واحدة. قم بتحريك العلم لمعرفة ما يفعله.
علَم
اسم
تأثير
g
عالمي
ابحث عن كل تطابق بدلاً من التوقف عند الأول
i
تجاهل الحالة
الحروف متطابقة بالأحرف الكبيرة أو الصغيرة
m
متعدد الأسطر
^ و $ يتطابقان في بداية/نهاية كل سطر
s
dotAll
. يطابق أيضًا فواصل الأسطر
u
يونيكود
التعامل مع الشخصيات التعبيرية والنجمية كحرف واحد؛ تمكين \p{…}
v
مجموعات يونيكود
كل ما تفعله، بالإضافة إلى تعيين العمليات مثل [\p{L}--[a-z]]
y
لزجة
يجب أن تبدأ كل مباراة بالضبط حيث انتهت المباراة السابقة
استبدال واستخراج وتقسيم واختبار الوحدة في مكان واحد
قم بالتبديل إلى "استبدال" لإنشاء قاعدة بحث واستبدال باستخدام الرموز المميزة $1 و$<name> و$& و$$؛ النتيجة تسلط الضوء على كل قطعة مدرجة حتى تتمكن من التحقق منها قبل تشغيلها على البيانات الحقيقية. يقوم الاستخراج بتحويل كل تطابق إلى قائمة باستخدام قالب (على سبيل المثال $2، $1 لمبادلة مجموعتين)، مع خيارات فريدة وفرز وتصدير CSV أو JSON لجداول البيانات. يُظهر Split ما يُرجعه String.split() بالضبط، بما في ذلك الفواصل التي تم التقاطها. تتيح لك اختبارات الوحدة تحديد السلوك: إضافة سلاسل يجب أن تتطابق، أو يجب أن تتطابق تمامًا، أو يجب ألا تتطابق، ويتم تحديث عدد النجاح/الفشل في كل ضغطة مفتاح، لذا فإن أي تغيير بسيط في النمط الخاص بك لن يؤدي أبدًا إلى كسر الحالة التي قمت بإصلاحها بالفعل.
يمكن تقسيم بعض الأنماط، مثل (a+)+$ أو (\w+\s?)*$، بين تكراراتها بطرق عديدة. عندما يتطابق الإدخال تقريبًا، يحاول المحرك تجربة كل مجموعة ويمكنه تجميد علامة تبويب المتصفح أو إيقاف الخادم، وهي ثغرة أمنية تُعرف باسم ReDoS (رفض الخدمة بالتعبير العادي). يقوم هذا المختبر بتشغيل كل نمط في عامل ويب منفصل بحد أقصى ثانيتين: إذا كان المحرك متوقفًا فسيتم إيقافه وستحصل على تحذير واضح بدلاً من صفحة مجمدة. يقوم الوبر المدمج أيضًا بوضع علامة على الشكل الخطير (مجموعة متكررة يتكرر الجزء الداخلي منها أيضًا) قبل شحنه، إلى جانب الأخطاء الشائعة الأخرى مثل النقطة التي لا يمكن الهروب منها في اسم النطاق، والنطاقات [A-z] والبدائل الفارغة.
استخدم نفس التعبير العادي في Python وPHP وJava وC# وGo وRust وRuby
يقوم المختبر بتشغيل محرك regex الخاص بـ JavaScript (ECMAScript) الخاص بمتصفحك، لذا تكون النتائج دقيقة لـ JavaScript وTypeScript وNode.js. تعمل علامة التبويب Code على تحويل النمط الخاص بك إلى رمز جاهز للصق لثماني لغات أخرى وتحويل الأجزاء التي تختلف: تصبح المجموعات المسماة (?P<name>…) لـ Python، وتصبح العلامات RegexOptions لـ C# أو مضمنة (؟i) لـ Go وRust، وتتم إعادة كتابة الرموز المميزة البديلة لكل لغة. يسرد جدول التوافق كل ميزة يستخدمها النمط الخاص بك وما إذا كان كل محرك يدعمها:
تحتوي مكتبة الأنماط على 40 تعبيرًا جاهزًا ومختبرًا، يحتوي كل منها على عينة نصية: البريد الإلكتروني، وعنوان URL، وIPv4 وIPv6، وE.164، وأرقام هواتف أمريكية، وكلمات مرور قوية، ومعرفات UUID، والإصدارات الدلالية، والرموز البريدية في المملكة المتحدة، وتواريخ ISO وDD/MM/YYYY، والأسعار، وعلامات التصنيف، و@الإشارات، وروابط Markdown، وعلامات HTML، وأسطر سجل Apache/Nginx، والكلمات المكررة والمزيد. إذا كنت تفضل البدء من بياناتك، فالصق بعض الأمثلة في Build: يقوم المولد بتجميع الحروف والأرقام والرموز في نمط مثل ^\d{4}-\d{2}-\d{2}$ الذي يمكنك تحسينه. يمكن للبناء أيضًا الهروب من أي نص حرفي بحيث تكون الأحرف مثل . * ؟ ( ) $ متطابقة تمامًا.
خاص بالتصميم
يتم تشغيل كل شيء محليًا في محرك JavaScript الخاص بالمتصفح الخاص بك: لا يتم تحميل أي شيء تكتبه أو تسجيله أو تخزينه على الخادم. يتم الاحتفاظ بجلستك الأخيرة في هذا المتصفح حتى تتمكن من المتابعة من حيث توقفت، وتظل الأنماط المحفوظة على جهازك، وتحمل روابط المشاركة النموذج والنص والاختبارات داخل عنوان URL نفسه، لذلك لا يتم تخزين أي شيء من جانبنا.
الأسئلة المتداولة
ما هي نكهة regex التي يستخدمها هذا الاختبار؟
ويستخدم محرك التعبير العادي JavaScript (ECMAScript) الخاص بمتصفحك، وهو نفس محرك Chrome وFirefox وSafari وNode.js، بما في ذلك العلامات g وi وm وs وu وv وy. النتائج مطابقة تمامًا لـ JavaScript وTypeScript؛ تقوم علامة التبويب Code بتحويل النمط للغات الأخرى.
هل يمكنني اختبار مجموعات الالتقاط؟
نعم. تسرد كل مطابقة موضعها وقيمة كل مجموعة مرقمة ومسماة، ويتم تمييز المجموعات بالألوان داخل النص، ويؤدي النقر فوق المطابقة إلى إظهار القيمة التي تم التقاطها لكل مجموعة مباشرة على الرسم التخطيطي.
كيف تعمل معاينة الاستبدال؟
اكتب بديلاً باستخدام $1، و$2 للمجموعات المرقمة، و$<name> للمجموعات المسماة، و$& للمطابقة بأكملها، و$$ لعلامة الدولار الحرفية. يتم تحديث النتيجة مباشرة وتسلط الضوء على كل قطعة مدرجة، تمامًا كما ستنتجها String.replace().
هل بيانات الاختبار الخاصة بي خاصة؟
نعم. يتم تشغيل التعبير العادي بالكامل في متصفحك، في عامل ويب محلي. لا يتم تحميل الأنماط وسلاسل الاختبار الخاصة بك أبدًا؛ تبقى الأنماط المحفوظة في هذا المتصفح فقط.
كيف يمكنني اختبار تعبير عادي مقابل النص الخاص بي؟
اكتب النمط الخاص بك والصق نموذج النص؛ يتم تمييز المطابقات مباشرة، مع إظهار مجموعات الالتقاط، حتى تتمكن من رؤية ما يطابق التعبير العادي الخاص بك بالضبط وتحسينه على الفور.
لماذا لا يتطابق التعبير العادي الخاص بي مع أي شيء؟
الأسباب الشائعة هي وجود علامة مفقودة (i للحالة، وm so ^ و$ تعمل لكل سطر، وs so . تتقاطع مع فواصل الأسطر)، أو حرف خاص لا يمكن إلغاؤه، أو بناء جملة من لغة أخرى. قم بتمرير الرسم البياني لمعرفة ما يتوقعه كل جزء، واقرأ الشرح باللغة الإنجليزية البسيطة، وتحقق من التحذيرات الموجودة أسفل النموذج.
هل يمكنني اختبار نفس النمط لجافا سكريبت والنكهات الأخرى؟
يتم تشغيل المطابقة على محرك JavaScript، وتقوم علامة التبويب Code بإنشاء كود عمل لـ Python وPHP وJava وC# وGo وRust وRuby، وتحويل المجموعات المسماة والأعلام وبناء الجملة البديل. يعرض جدول التوافق الميزات، مثل المراجع الخلفية أو المراجع الخلفية، غير المدعومة في كل محرك.
ما هو متخيل regex أو مخطط السكك الحديدية؟
يرسم متخيل regex تعبيرًا عاديًا كمخطط للسكك الحديدية: مسار تتبعه من اليسار إلى اليمين حيث تكون الفروع بدائل، والحلقات متكررة، والتجاوزات أجزاء اختيارية. فهو يجعل قراءة الأنماط الطويلة أسهل بكثير من قراءة الجملة الأولية. هنا يكون الرسم التخطيطي تفاعليًا: قم بتحريك المربع لتمييزه في النموذج ورؤية شرح باللغة الإنجليزية البسيطة.
هل يمكنني تنزيل مخطط regex؟
نعم. استخدم أزرار SVG أو PNG الموجودة أعلى الرسم التخطيطي لتنزيله للحصول على الوثائق أو مراجعات التعليمات البرمجية أو المواد التعليمية. تساعد عناصر التحكم في التكبير/التصغير والملاءمة للعرض في الأنماط الطويلة.
ما هو التراجع الكارثي (ReDoS)؟
ويحدث ذلك عندما يتمكن نمط مثل (a+)+$ من تقسيم نفس النص بين التكرارات المتداخلة بطرق عديدة، لذا فإن الإدخال شبه المفقود يجعل المحرك يعمل لمدة ثوانٍ أو ساعات. يقوم هذا المختبر بتشغيل الأنماط في عامل الويب، ويوقفها بعد ثانيتين، ويحذر من محددات الكمية المتداخلة قبل نشرها.
كيف يمكنني تحويل regex JavaScript إلى Python؟
افتح علامة التبويب Code واختر Python. تقوم الأداة بإعادة كتابة (?<name>…) كـ (?P<name>…)، و\k<name> كـ (?P=name)، وتعيين علامات i وm وs إلى re.IGNORECASE وre.MULTILINE وre.DOTALL، وتحويل بدائل $1 إلى \g<1>. لاحظ أن وحدة re المضمنة في Python لا تدعم خصائص \p{…} Unicode.
ماذا تعني علامات regex g وi وm وs وu وv وy؟
يبحث g عن جميع التطابقات، ويتجاهل حالة الأحرف، ويجعل m ^ و$ يعملان على كل سطر، ويتيح s . فواصل أسطر المطابقة، وتمكّن u خصائص Unicode و\p{…} الكاملة، وتضيف v عمليات مجموعة Unicode، ولا يتطابق y (المثبت) إلا في الموضع المحدد الذي انتهت فيه المطابقة الأخيرة.
ما هو الفرق بين الكميات الجشعة والكسولة؟
تتطابق محددات الكمية الجشعة (*، +، {n,m}) قدر الإمكان، ثم تعيد الأحرف إذا لزم الأمر؛ تتطابق العناصر الكسولة (*؟، +؟، {n,m}؟) مع أقل قدر ممكن وتتوسع فقط عند الحاجة. على سبيل المثال، يتطابق <.+> مع سطر كامل من العلامات، بينما يطابق <.+?> علامة واحدة في كل مرة. في الرسم التخطيطي، يتم رسم حلقة كسولة متقطعة.
كيف يعمل النظر إلى الأمام والنظر إلى الخلف؟
يقومون بالتحقق مما يأتي بعد (?=…) أو قبل (?<=…) المركز الحالي دون إدراجه في المباراة؛ تتطلب صيغ النفي (؟!…) و (؟<!…) عدم وجود النص. على سبيل المثال، \d+(?=px) يطابق 12 في "12px". يدعم جافا سكريبت النظر إلى الخلف بأي طول.
هل يمكن لهذه الأداة إنشاء تعبير عادي لي؟
نعم. الصق بعض الأمثلة في علامة التبويب "إنشاء" وسيقترح نمطًا من خلال تعميم الحروف والأرقام والرموز (على سبيل المثال، يصبح 2026-09-24 \d{4}-\d{2}-\d{2}). يمكنك أيضًا البدء من 40 نمطًا تم اختباره في المكتبة، مثل البريد الإلكتروني وعنوان URL وعنوان IP ورقم الهاتف والتاريخ وقواعد كلمة المرور.
كيف أكتب اختبارات الوحدة للتعبير العادي؟
افتح علامة التبويب اختبارات الوحدة وأضف السلاسل التي يجب أن تتطابق، أو يجب أن تتطابق تمامًا، أو لا يجب أن تتطابق. تتم إعادة تشغيل كل اختبار عند كل ضغطة مفتاح مع عدد النجاح/الفشل، وتقوم أسطر الاستيراد بتحويل كل سطر من نص الاختبار الخاص بك إلى حالة اختبار.
هل يمكنني مشاركة regex مع شخص ما؟
انقر فوق مشاركة الارتباط لنسخ عنوان URL الذي يعيد فتح النمط الدقيق والأعلام ونص الاختبار والاستبدال واختبارات الوحدة. يتم تشفير كل شيء داخل الرابط نفسه، لذلك لا يتم تخزين أي شيء على الخادم.
كيف يختلف هذا عن regex101 أو RegExr؟
يتيح لك regex101 التبديل بين عدة محركات مثل PCRE وPython وJava، وهو ما لا تفعله هذه الأداة. يركز هذا الاختبار على محرك JavaScript الذي يعمل عليه الكود الخاص بك فعليًا ويضيف مخططًا تفاعليًا للسكك الحديدية واختبارات الوحدة وحماية ReDoS وتصدير التعليمات البرمجية لـ 9 لغات وجدول التوافق، بدون حساب أو تحميل أي شيء.