مختبِر التعابير النمطية
اختبر التعابير النمطية مباشرة: المطابقات ومجموعات الالتقاط والاستبدال، مع 15 نمطًا جاهزًا.
مختبِر التعابير النمطية — اختبار regex أونلاين مع إبراز المطابقات
كتابة تعبير نمطي تبقى تخمينًا حتى ترى ما الذي يطابقه فعلًا. هذا المختبِر المجاني يشغّل نمطك على نصّك أثناء الكتابة ويبرز كل مطابقة، فتجد الخطأ في ثوانٍ بدل أن تدفع قاعدة تحقّق مكسورة إلى الإنتاج.
اكتب النمط في حقل، والرايات في الحقل التالي، والصق تحتهما النص الذي تريد اختباره. تتحدّث المطابقات فورًا، ويُبلَّغ عن أي نمط غير صالح في الحال بدل أن يفشل بصمت.
لماذا نحتاج مختبِر regex أصلًا
معظم أخطاء التعابير النمطية ليست غريبة: النمط يلتقط أكثر مما ينبغي، أو أقل مما ينبغي، أو ينجح مع المثال الوحيد الذي دار في ذهنك ويفشل مع الثاني. المختبِر يحوّل هذا السلوك الخفي إلى شيء تراه بعينك: الصق خمسة مدخلات واقعية، بما فيها المزعجة، وراقب أيّها يضيء. وهو أيضًا أسرع طريق لتعلّم الصيغة، لأنك تغيّر محرفًا واحدًا فترى الأثر فورًا.
طريقة استخدام المختبِر
- أدخل النمط بلا الشرطتين المائلتين المحيطتين، مثل
[a-z]+\d{2,4}. - أضف الرايات التي تحتاجها في حقل الرايات، مثل
giلبحث شامل لا يفرّق بين الكبيرة والصغيرة. - الصق نصًا واقعيًا في نص الاختبار، بما في ذلك الحالات الحدّية التي تتوقع فشلها.
- اقرأ المطابقات المبرَزة في النص والمسرودة تحت المطابقات والمجموعات، وعدّل النمط، وكرّر حتى يُحدَّد النص الصحيح وحده.
- راجِع مجموعات الالتقاط المعروضة مع كل تطابق، واكتب بديلاً باستخدام
$1أو$<name>في استبدال بـ، فيظهر النص بعد إعادة كتابته تحت نتيجة الاستبدال.
لا تعرف من أين تبدأ؟ تحمّل قائمة مكتبة الأنماط واحدًا من 15 نمطًا شائعًا مع راياته، من عناوين البريد الإلكتروني وروابط URL وعناوين IPv4 ومعرّفات UUID والألوان السداسية إلى روابط Markdown والكلمات المكرّرة والمسافات الزائدة في بداية السطر أو نهايته. إن كان مربع الاختبار فارغًا أو ما زال يحمل نموذجًا سابقًا، يأتي مع النمط نص نموذجي؛ وإن كنت قد لصقت نصك، فإنه يبقى، فيعمل النمط على بياناتك الحقيقية. تعامل مع هذه الأنماط كنقاط انطلاق لا كأدوات تحقّق: فنمط البريد مثلًا عملي عن قصد ولا يقبل كل عنوان يسمح به المعيار. ويبيّن دليل Regex للبريد الإلكتروني ودليل الأرقام والهواتف وعناوين IP أين تتوقف هذه الأنماط.
مجموعات الالتقاط والبحث والاستبدال
ضع جزءًا من النمط بين قوسين لالتقاطه؛ يعرض هذا المُختبِر كل مجموعة بجوار تطابقها - مرقّمة المجموعة 1 والمجموعة 2 وهكذا، إضافةً إلى أي مجموعة مسمّاة تُكتب (?<name>...). هكذا تستخرج السنة أو رمز المنطقة أو امتداد الملف من التطابق بدل الاكتفاء بالتأكد من حدوثه. اكتب شيئًا في حقل استبدال بـ لإعادة كتابة التطابقات فورًا: $1 يُدرج المجموعة الأولى، و$<name> مجموعة مسمّاة، و$& التطابق كاملًا، و$$ علامة دولار حرفية.
الرايات وما تغيّره
| الراية | الأثر | متى تحتاجها |
|---|---|---|
g | تجد كل المطابقات لا الأولى فقط | استبدال أو عدّ كل التكرارات |
i | تتجاهل حالة الأحرف | مدخلات المستخدم والبريد الإلكتروني والوسوم |
m | ^ و$ تعملان في كل سطر | العمل سطرًا سطرًا في سجل أو قائمة |
s | . تطابق السطر الجديد أيضًا | التقاط كتلة تمتد عبر عدة أسطر |
u | وضع يونيكود الكامل | الرموز التعبيرية والحروف العربية والكتابات غير اللاتينية |
y | لاصقة: تطابق عند الموضع الحالي فقط | كتابة محلّل لفظي أو مُعرِب |
الرموز الأكثر استخدامًا
| الرمز | المعنى |
|---|---|
\d \w \s | رقم، محرف كلمة، مسافة بيضاء |
. | أي محرف عدا السطر الجديد، ما لم تُفعَّل الراية s |
^ $ | بداية النص ونهايته، أو بداية كل سطر ونهايته مع m |
* + ? | صفر أو أكثر، واحد أو أكثر، صفر أو واحد |
{2,5} | من تكرارين إلى خمسة |
[abc] [^abc] | أي من هذه المحارف، أو أي شيء عداها |
(...) (?:...) | مجموعة ملتقِطة ومجموعة غير ملتقِطة |
\b | حدّ كلمة — الحل الصحيح لمطابقة الكلمات الكاملة فقط |
فيمَ يكتب الناس التعابير النمطية
- التحقق من البريد الإلكتروني وأرقام الهاتف والرموز البريدية وأرقام الهوية في النماذج.
- استخراج عناوين IP ورموز الحالة والطوابع الزمنية ومعرّفات المستخدمين من أسطر السجل.
- البحث والاستبدال عبر مشروع كامل، وإعادة هيكلة يعجز المحرّر عن تنفيذها حرفيًا.
- قواعد التوجيه وإعادة التوجيه في إطار عمل أو خادم ويب أو شبكة توصيل محتوى.
- تنظيف البيانات المستوردة أو المستخرَجة قبل وصولها إلى قاعدة البيانات.
- فرض قواعد تركيب كلمة المرور على جهة العميل.
الأخطاء التي تكلّف أكبر وقت
- المكمّمات الجشعة. يمتد
.*إلى آخر السطر. استخدم.*?أو صنفًا منفيًا مثل[^"]*ليتوقف أبكر. - محارف خاصة بلا هروب. النقطة والزائد وعلامة الاستفهام والشرطة المائلة الحقيقية تحتاج شرطة عكسية قبلها.
- نسيان الراية
gثم الاستغراب لماذا تغيّر التكرار الأول فقط. - التراجع الكارثي. المكمّمات المتداخلة مثل
(a+)+قد تجمّد التنفيذ مع مدخل طويل غير مطابق. - أنماط بريد صارمة أكثر من اللازم. العناوين الحقيقية تحوي علامة زائد ونقاطًا ومحارف دولية: تساهل في الفحص وأكّد برسالة تحقق.
- محاولة تحليل HTML. استخدم مُعرِبًا للبنى المتداخلة؛ لا تستطيع التعابير النمطية عدّ وسوم الفتح والإغلاق.
ملاحظة عن لهجات التعابير النمطية
يستخدم هذا المختبِر محرّك JavaScript في متصفحك، وهو الهدف الصحيح إن كان النمط سيعمل في صفحة ويب أو في Node.js أو في مخطّط JSON. أما PCRE وبايثون وGo وPostgreSQL فتختلف في تفاصيل مثل دعم النظر إلى الخلف وصيغة المجموعات المسمّاة وخصائص يونيكود. اختبر النمط في البيئة التي سيعمل فيها فعلًا قبل أن تعتمد عليه.
لا يُرسل شيء مما تلصقه
يبقى النمط ونص الاختبار داخل المتصفح. وهذا مهم لأن بيانات الاختبار غالبًا بيانات حقيقية — مقتطفات سجل، وسجلات عملاء، ورسائل نموذجية — ولا ينبغي أن ينتهي أي منها على خادم شخص آخر.
النمط نفسه في Python وJava وC# وPHP وGo
حين يعمل نمط هنا، ينتقل غالبًا إلى لغة أخرى بتغيير الغلاف فقط. ما يسبب المتاعب فعلًا هو طريقة تهريب الشرطة المائلة العكسية داخل النصوص الحرفية، وأي ميزات يدعمها كل محرك.
| اللغة | اختبار المطابقة | انتبه إلى |
|---|---|---|
| Python | re.search(r'\d{4}', text) | استخدم النصوص الخام؛ المجموعات المسمّاة تُكتب (?P<name>...) |
| Java | Pattern.compile("\\d{4}").matcher(text).find() | ضاعف الشرطات العكسية؛ matches() يشترط مطابقة النص كله |
| C# / .NET | Regex.IsMatch(text, @"\d{4}") | النصوص الحرفية بـ @ تغنيك عن التهريب المزدوج |
| PHP | preg_match('/\d{4}/', $text) | PCRE: المحدِّدات إلزامية، وأضف u لـ UTF-8 |
| Go | regexp.MustCompile(`\d{4}`).MatchString(text) | محرك RE2: لا lookbehind ولا مراجع خلفية |
أدوات ذات صلة
تعمل الأنماط غالبًا على نص قادم من مكان آخر. نسّق حمولة عبر منسّق JSON، وفكّ قيمة مهروبة عبر فاكّ ترميز الروابط، واقرأ رمزًا عبر فاكّ ترميز JWT، وحوّل قيم Epoch المستخرجة عبر محوّل الطابع الزمني.