Whiz Tools

مُختبر نمط التعبير العادي

نسخ

نتائج المطابقة

أدخل نمطًا ونصًا للاختبار لرؤية النتائج

حفظ النمط

الأنماط المحفوظة

لا توجد أنماط محفوظة بعد

دليل رموز التعبير العادي

.يتطابق مع أي حرف باستثناء السطر الجديد
\dيتطابق مع أي رقم (0-9)
\Dيتطابق مع أي غير رقم
\wيتطابق مع أي حرف كلمة (a-z، A-Z، 0-9، _)
\Wيتطابق مع أي حرف غير كلمة
\sيتطابق مع أي حرف فراغ
\Sيتطابق مع أي حرف غير فراغ
^يتطابق مع بداية السطر
$يتطابق مع نهاية السطر
*يتطابق مع 0 أو أكثر من الحرف السابق
+يتطابق مع 1 أو أكثر من الحرف السابق
?يتطابق مع 0 أو 1 من الحرف السابق
{n}يتطابق مع بالضبط n من الحرف السابق
{n,}يتطابق مع على الأقل n من الحرف السابق
{n,m}يتطابق مع بين n و m من الحرف السابق
[abc]يتطابق مع أي واحد من الأحرف في الأقواس
[^abc]يتطابق مع أي حرف ليس في الأقواس
(abc)يجمع عدة رموز معًا ويحتفظ بالتطابق
a|bيتطابق مع إما a أو b
\bيتطابق مع موضع حد الكلمة

مختبر ومحقق نمط التعبير العادي (Regex)

مقدمة

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

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

كيفية استخدام مختبر نمط التعبير العادي

استخدام محقق نمط التعبير العادي لدينا سهل وبديهي. اتبع هذه الخطوات للبدء:

  1. أدخل نمط التعبير العادي: اكتب نمط التعبير العادي الخاص بك في حقل الإدخال المخصص. يتحقق الأداة من صحة نمطك في الوقت الفعلي، وتنبهك إلى أي أخطاء في الصياغة.

  2. اختر علامات التعبير العادي: اختر العلامات المناسبة لنمطك:

    • g (عالمي): ابحث عن جميع التطابقات بدلاً من التوقف بعد أول تطابق
    • i (غير حساس لحالة الأحرف): اجعل النمط غير حساس لحالة الأحرف
    • m (متعدد الأسطر): اجعل ^ و $ يتطابقان مع بداية/نهاية كل سطر
    • تتوفر تركيبات مختلفة من هذه العلامات في القائمة المنسدلة
  3. أدخل نص الاختبار: أدخل النص الذي تريد اختباره مقابل نمطك في منطقة نص الاختبار.

  4. عرض النتائج في الوقت الفعلي: أثناء الكتابة، تقوم الأداة تلقائيًا:

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

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

تتكون الواجهة من لوحين رئيسيين: لوحة الإدخال حيث تدخل نمطك ونص الاختبار، ولوحة النتائج التي تعرض التطابقات ومعلومات النمط.

أساسيات التعبير العادي

تستخدم التعبيرات العادية أحرف وتسلسلات خاصة لتعريف أنماط البحث. إليك دليل للرموز الأساسية المدعومة من قبل أداتنا:

مطابقة الأحرف

الرمزالوصفالمثالالتطابقات
.يتطابق مع أي حرف باستثناء السطر الجديدa.c"abc"، "adc"، "a1c"، إلخ.
\dيتطابق مع أي رقم (0-9)\d{3}"123"، "456"، "789"، إلخ.
\Dيتطابق مع أي غير رقم\D+"abc"، "xyz"، إلخ.
\wيتطابق مع أي حرف كلمة (a-z، A-Z، 0-9، _)\w+"abc123"، "test_123"، إلخ.
\Wيتطابق مع أي حرف غير كلمة\W+"!@#"، " + "، إلخ.
\sيتطابق مع أي حرف مسافةa\sb"a b"، "a\tb"، إلخ.
\Sيتطابق مع أي حرف غير مسافة\S+"abc"، "123"، إلخ.

مواضع التثبيت

الرمزالوصفالمثالالتطابقات
^يتطابق مع بداية السطر^abc"abc" في بداية السطر
$يتطابق مع نهاية السطرabc$"abc" في نهاية السطر
\bيتطابق مع حد كلمة\bword\b"word" ككلمة كاملة

المحددات

الرمزالوصفالمثالالتطابقات
*يتطابق مع 0 أو أكثر من الحرف السابقa*b"b"، "ab"، "aab"، إلخ.
+يتطابق مع 1 أو أكثر من الحرف السابقa+b"ab"، "aab"، "aaab"، إلخ.
?يتطابق مع 0 أو 1 من الحرف السابقcolou?r"color"، "colour"
{n}يتطابق مع بالضبط n من الحرف السابقa{3}"aaa"
{n,}يتطابق مع على الأقل n من الحرف السابقa{2,}"aa"، "aaa"، "aaaa"، إلخ.
{n,m}يتطابق مع بين n و m من الحرف السابقa{2,4}"aa"، "aaa"، "aaaa"

فئات الأحرف

الرمزالوصفالمثالالتطابقات
[abc]يتطابق مع أي واحد من الأحرف في الأقواس[aeiou]"a"، "e"، "i"، "o"، "u"
[^abc]يتطابق مع أي حرف ليس في الأقواس[^aeiou]أي حرف باستثناء "a"، "e"، "i"، "o"، "u"
[a-z]يتطابق مع أي حرف في النطاق[a-z]أي حرف صغير

التجميع والتناوب

الرمزالوصفالمثالالتطابقات
(abc)يجمع عدة رموز معًا ويحتفظ بالتطابق(abc)+"abc"، "abcabc"، إلخ.
a|bيتطابق مع إما a أو bcat|dog"cat"، "dog"

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

بمجرد أن تتقن الأساسيات، يمكنك إنشاء أنماط أكثر تعقيدًا لحل تحديات معالجة النصوص المعقدة:

التحقق من البريد الإلكتروني

^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$

يتحقق هذا النمط من عناوين البريد الإلكتروني من خلال ضمان أنها تتبع الصيغة القياسية: username@domain.tld.

التحقق من عنوان URL

^(https?:\/\/)?(www\.)?[-a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_\+.~#?&//=]*)$

يتحقق هذا النمط من عناوين URL، بما في ذلك تلك التي تحتوي على أو بدون بروتوكول http/https.

التحقق من رقم الهاتف (صيغة الولايات المتحدة)

^\(?(\d{3})\)?[- ]?(\d{3})[- ]?(\d{4})$

يتطابق هذا النمط مع أرقام الهواتف الأمريكية في صيغ مختلفة: (123) 456-7890، 123-456-7890، أو 1234567890.

التحقق من التاريخ (YYYY-MM-DD)

^\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])$

يتحقق هذا النمط من التواريخ في صيغة YYYY-MM-DD، مع تحقق أساسي من نطاقات الشهر واليوم.

البحث المتقدم والبحث الخلفي

تسمح لك التأكيدات المتقدمة بالبحث المتقدم والبحث الخلفي بمطابقة الأنماط فقط إذا كانت متبوعة بنمط آخر أو مسبوقة بنمط آخر:

  • البحث المتقدم الإيجابي: a(?=b) يتطابق مع "a" فقط إذا كانت متبوعة بـ "b"
  • البحث المتقدم السلبي: a(?!b) يتطابق مع "a" فقط إذا لم تكن متبوعة بـ "b"
  • البحث الخلفي الإيجابي: (?<=a)b يتطابق مع "b" فقط إذا كانت مسبوقة بـ "a"
  • البحث الخلفي السلبي: (?<!a)b يتطابق مع "b" فقط إذا لم تكن مسبوقة بـ "a"

العمل مع علامات التعبير العادي

يدعم مختبر التعبير العادي لدينا علامات مختلفة تعدل كيفية مطابقة الأنماط:

  • g (عالمي): ابحث عن جميع التطابقات بدلاً من التوقف بعد أول تطابق
  • i (غير حساس لحالة الأحرف): اجعل النمط غير حساس لحالة الأحرف
  • m (متعدد الأسطر): اجعل ^ و $ يتطابقان مع بداية/نهاية كل سطر
  • التركيبات: يمكنك دمج العلامات لمتطلبات المطابقة الأكثر تعقيدًا

حالات استخدام اختبار نمط التعبير العادي

توجد العديد من التطبيقات العملية للتعبيرات العادية عبر مجالات مختلفة:

تطوير الويب

  1. التحقق من النماذج: ضمان تطابق إدخالات المستخدم مع الصيغ المطلوبة:

    • عناوين البريد الإلكتروني: ^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$
    • كلمات المرور (مع متطلبات التعقيد): ^(?=.*[A-Za-z])(?=.*\d)[A-Za-z\d]{8,}$
    • عناوين URL: ^(https?:\/\/)?([\da-z\.-]+)\.([a-z\.]{2,6})([\/\w \.-]*)*\/?$
  2. تحليل HTML: استخراج عناصر أو سمات محددة:

    • العثور على جميع علامات الصور: <img[^>]+src="([^">]+)"
    • استخراج الروابط: <a[^>]+href="([^">]+)"

معالجة البيانات

  1. تحليل ملفات السجل: استخراج المعلومات من إدخالات السجل:

    • عناوين IP: \b\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\b
    • الطوابع الزمنية: \d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}
    • رسائل الخطأ: ERROR: .*
  2. تحليل CSV: معالجة القيم المفصولة بفواصل مع حقول محتملة محاطة بعلامات اقتباس:

    • مطابقة حقل CSV: (?:^|,)(?:"([^"]*(?:""[^"]*)*)"|([^,]*))

معالجة النصوص

  1. البحث والاستبدال: تحديد الأنماط للاستبدال:

    • إزالة علامات HTML: <[^>]*>
    • تنسيق أرقام الهواتف: (\d{3})(\d{3})(\d{4})($1) $2-$3
  2. استخراج المحتوى: سحب معلومات محددة من نص غير منظم:

    • استخراج التواريخ: \b(?:Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s+\d{1,2},\s+\d{4}\b
    • العثور على القيم النقدية: \$\d+(?:\.\d{2})?

البرمجة والترميز

  1. تمييز الصيغة: تحديد تراكيب اللغة:

    • متغيرات JavaScript: \b(?:var|let|const)\s+([a-zA-Z_$][\w$]*)\b
    • تعريفات الوظائف: function\s+([a-zA-Z_$][\w$]*)\s*\(
  2. إعادة هيكلة التعليمات البرمجية: العثور على الأنماط التي تحتاج إلى تحديث:

    • استدعاءات API المهجورة: \.oldMethod\(
    • الدوال غير الآمنة: eval\(

حفظ وإدارة الأنماط

يتضمن مختبر نمط التعبير العادي لدينا نظام إدارة الأنماط الذي يسمح لك بحفظ وإعادة استخدام تعبيراتك المستخدمة بشكل متكرر:

متى يجب حفظ الأنماط

فكر في حفظ الأنماط التي:

  • تستخدمها بشكل متكرر عبر مشاريع مختلفة
  • معقدة وصعبة التذكر
  • تخدم أغراض تحقق محددة في عملك
  • قمت بتنقيحها بعد عدة تكرارات

أفضل الممارسات لتسميات الأنماط

عند حفظ الأنماط، استخدم تسميات وصفية تشير إلى:

  • الغرض من النمط (مثل "مدقق البريد الإلكتروني")
  • ذكر الصيغ المحددة (مثل "رقم الهاتف الأمريكي")
  • تضمين معلومات الإصدار إذا قمت بتكرار الأنماط (مثل "مدقق URL v2")
  • أن تكون مختصرة ولكن معلوماتية

تنظيم الأنماط

نظم أنماطك المحفوظة حسب:

  • الوظيفة (التحقق، الاستخراج، الاستبدال)
  • المجال (تطوير الويب، معالجة البيانات)
  • التعقيد (أساسي، متقدم)
  • تكرار الاستخدام

مشاركة الأنماط

بينما لا تدعم أداتنا مشاركة الأنماط مباشرة بين المستخدمين، يمكنك:

  • نسخ الأنماط لمشاركتها مع الزملاء
  • توثيق أنماطك في مستودع مشترك
  • تضمين أوصاف الأنماط في وثائق المشروع

استكشاف الأخطاء الشائعة في التعبير العادي

حتى المطورين ذوي الخبرة يواجهون تحديات مع التعبيرات العادية. إليك حلول لبعض القضايا الشائعة:

أخطاء الصياغة

إذا أظهر نمطك خطأ في التحقق:

  • تحقق من عدم وجود أقواس أو أقواس مربعة أو أقواس غير متطابقة
  • تأكد من أن الأحرف الخاصة تم الهروب منها بشكل صحيح باستخدام شرطة مائلة
  • تحقق من أن المحددات لها حرف أو مجموعة سابقة
  • ابحث عن صياغة فئة الأحرف غير الصالحة

مشكلات الأداء

إذا كان التعبير العادي الخاص بك بطيئًا أو يسبب تأخيرًا في المتصفح:

  • تجنب الاستخدام المفرط للمحددات المتداخلة (مثل (a+)+)
  • كن حذرًا مع البحث المتقدم والبحث الخلفي في النصوص الكبيرة
  • فكر في استخدام أنماط أكثر تحديدًا بدلاً من الأنماط العامة
  • قسم الأنماط المعقدة إلى أجزاء أصغر وأسهل في الإدارة

تطابقات غير متوقعة

إذا كان نمطك يتطابق مع نص غير مرغوب فيه:

  • استخدم نقاط التثبيت (^ و $) لمطابقة السلاسل بالكامل
  • اجعل فئات الأحرف أكثر تحديدًا
  • أضف حدود الكلمات (\b) حيثما كان ذلك مناسبًا
  • استخدم البحث المتقدم السلبي لاستبعاد أنماط معينة

عدم العثور على تطابقات

إذا لم يتطابق نمطك مع النص المتوقع:

  • تحقق من مشكلات حساسية الحالة (فكر في استخدام علامة i)
  • تحقق من أن الأحرف الخاصة تم الهروب منها بشكل صحيح
  • اختبر نمطك على أمثلة مبسطة أولاً
  • تأكد من أنك تستخدم فئات الأحرف الصحيحة

بدائل التعبيرات العادية

بينما يعد التعبير العادي قويًا، إلا أنه ليس دائمًا أفضل حل لكل مهمة معالجة نصوص:

طرق السلسلة

لعمليات النص البسيطة، غالبًا ما تكون طرق السلسلة الأصلية أوضح وأكثر كفاءة:

  • String.indexOf() للعثور على الأجزاء الفرعية
  • String.startsWith() و String.endsWith() للتحقق من حدود السلسلة
  • String.split() للتجزئة الأساسية

محللات متخصصة

لأشكال البيانات المنظمة، فإن المحللات المخصصة أكثر موثوقية:

  • محللات JSON لبيانات JSON
  • محللات XML/HTML للغات الترميز
  • محللات CSV للبيانات الجدولية

معالجة اللغة الطبيعية (NLP)

لفهم معنى النص بدلاً من مجرد الأنماط:

  • أدوات تحليل المشاعر
  • التعرف على الكيانات المسماة
  • وسم أجزاء الكلام

متى تختار البدائل

فكر في البدائل للتعبير العادي عندما:

  • يكون هيكل النص منتظمًا وبسيطًا للغاية
  • يكون هناك محلل قياسي متاح للصيغة
  • تحتاج إلى فهم المعنى الدلالي
  • تكون الأداء أمرًا حاسمًا للنصوص الكبيرة جدًا

الأسئلة الشائعة

ما هو التعبير العادي؟

التعبير العادي (regex) هو تسلسل من الأحرف الذي يحدد نمط بحث. يمكن استخدام هذه الأنماط لعمليات البحث عن السلاسل، والمطابقة، والتلاعب بالنص.

لماذا أحتاج إلى مختبر نمط التعبير العادي؟

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

كيف يمكنني مطابقة حرف خاص حرفي مثل النقطة أو النجمة؟

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

ما الفرق بين .* و .*? في نمط التعبير العادي؟

.* هو محدد جشع يتطابق مع أكبر عدد ممكن من الأحرف، بينما .*? هو محدد كسول (غير جشع) يتطابق مع أقل عدد ممكن من الأحرف. هذه التفرقة مهمة عندما تريد العثور على أقصر تطابق بدلاً من الأطول.

هل يمكنني استخدام هذا المختبر للتعبيرات في أي لغة برمجة؟

بينما تكون صيغة التعبير العادي الأساسية متشابهة عبر العديد من اللغات، هناك اختلافات طفيفة في التنفيذ. يستخدم مختبرنا محرك التعبير العادي الخاص بـ JavaScript، والذي يتوافق مع العديد من لغات الويب ولكنه قد يحتوي على اختلافات عن التعبير العادي في لغات مثل Python أو Java أو Perl.

كيف يمكنني التحقق من صحة سلسلة كاملة باستخدام التعبير العادي؟

للتحقق من أن سلسلة كاملة تتطابق مع نمط، استخدم نقطة التثبيت ^ في البداية ونقطة التثبيت $ في النهاية من تعبيرك العادي. على سبيل المثال، ^[0-9]+$ سيتطابق فقط مع السلاسل التي تتكون بالكامل من الأرقام.

ما هي المجموعات القابلة للاحتجاز وكيف يمكنني استخدامها؟

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

كيف يمكنني جعل أنماط التعبير العادي أكثر كفاءة؟

لتحسين كفاءة التعبير العادي: كن محددًا مع فئات الأحرف، وتجنب استخدام المجموعات القابلة للاحتجاز غير الضرورية (استخدم المجموعات غير القابلة للاحتجاز (?:...) عندما يكون ذلك ممكنًا)، وحد من استخدام البحث المتقدم/البحث الخلفي، وتجنب أنماط العودة الكارثية مثل المحددات المتداخلة.

ما هي أكثر الأخطاء الشائعة في التعبير العادي التي يجب تجنبها؟

تشمل الأخطاء الشائعة: عدم الهروب من الأحرف الخاصة، وإنشاء أنماط جشعة للغاية، ونسيان تثبيت الأنماط (مع ^ و $)، وكتابة تعبيرات معقدة للغاية يصعب صيانتها.

هل يمكن للتعبير العادي التعامل مع الهياكل المتداخلة مثل HTML؟

لا تعد التعبيرات العادية مناسبة جيدًا لتحليل الهياكل المتداخلة مثل HTML أو XML. بينما يمكنك إنشاء أنماط تعبير عادي لمطابقة HTML البسيطة، فمن الأفضل عمومًا استخدام محلل HTML مخصص لمعالجة HTML المعقدة.

المراجع

  1. فريدل، ج. إ. ف. (2006). إتقان التعبيرات العادية. ميديا أوريلي.
  2. جويفارتس، ج.، وليفيثان، س. (2012). كتاب طهي التعبيرات العادية. ميديا أوريلي.
  3. "التعبير العادي." ويكيبيديا، مؤسسة ويكيميديا، https://en.wikipedia.org/wiki/Regular_expression
  4. وثائق MDN. "التعبيرات العادية." موزيلا، https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions
  5. RegExr: تعلم، بناء، واختبار RegEx. https://regexr.com/

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

تعليقات