اختبر التعبيرات العادية مع تمييز المطابقة في الوقت الحقيقي، والتحقق من الأنماط، وشرح الرموز الشائعة للتعبيرات العادية. احفظ وأعد استخدام الأنماط التي تستخدمها بشكل متكرر مع تسميات مخصصة.
أدخل نمطًا ونصًا للاختبار لرؤية النتائج
أدخل نمطًا ونصًا للاختبار لرؤية النتائج
لا توجد أنماط محفوظة بعد
.
يتطابق مع أي حرف باستثناء السطر الجديد\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) أداة أساسية للمطورين ومحللي البيانات وأي شخص يعمل في معالجة النصوص. يتيح لك هذا المحقق الشامل لنمط التعبير العادي إنشاء واختبار وتنقيح التعبيرات العادية في الوقت الفعلي، مما يوفر ملاحظات بصرية فورية حول تطابق الأنماط. سواء كنت تتحقق من عناوين البريد الإلكتروني أو تقوم بتحليل ملفات السجل أو تستخرج بيانات محددة من النص، فإن مختبر التعبير العادي لدينا يجعل عملية التطوير وتصحيح الأخطاء أسرع وأكثر سهولة.
تعد التعبيرات العادية تسلسلات قوية لمطابقة الأنماط التي تمكن من البحث والتحقق والتلاعب بالنصوص بشكل متقدم. ومع ذلك، يمكن أن تكون صيغتها معقدة وصعبة الإتقان. يبسط مختبر نمط التعبير العادي هذا العملية من خلال تسليط الضوء على التطابقات أثناء الكتابة، والتحقق من صحة صيغة النمط، والسماح لك بحفظ الأنماط المستخدمة بشكل متكرر للرجوع إليها لاحقًا.
استخدام محقق نمط التعبير العادي لدينا سهل وبديهي. اتبع هذه الخطوات للبدء:
أدخل نمط التعبير العادي: اكتب نمط التعبير العادي الخاص بك في حقل الإدخال المخصص. يتحقق الأداة من صحة نمطك في الوقت الفعلي، وتنبهك إلى أي أخطاء في الصياغة.
اختر علامات التعبير العادي: اختر العلامات المناسبة لنمطك:
g
(عالمي): ابحث عن جميع التطابقات بدلاً من التوقف بعد أول تطابقi
(غير حساس لحالة الأحرف): اجعل النمط غير حساس لحالة الأحرفm
(متعدد الأسطر): اجعل ^
و $
يتطابقان مع بداية/نهاية كل سطرأدخل نص الاختبار: أدخل النص الذي تريد اختباره مقابل نمطك في منطقة نص الاختبار.
عرض النتائج في الوقت الفعلي: أثناء الكتابة، تقوم الأداة تلقائيًا:
حفظ الأنماط المفيدة: للأنماط التي تستخدمها بشكل متكرر:
نسخ النتائج: استخدم زر "نسخ التطابقات" لنسخ جميع النصوص المتطابقة إلى الحافظة الخاصة بك لاستخدامها في تطبيقات أخرى.
تتكون الواجهة من لوحين رئيسيين: لوحة الإدخال حيث تدخل نمطك ونص الاختبار، ولوحة النتائج التي تعرض التطابقات ومعلومات النمط.
تستخدم التعبيرات العادية أحرف وتسلسلات خاصة لتعريف أنماط البحث. إليك دليل للرموز الأساسية المدعومة من قبل أداتنا:
الرمز | الوصف | المثال | التطابقات |
---|---|---|---|
. | يتطابق مع أي حرف باستثناء السطر الجديد | 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 أو b | cat|dog | "cat"، "dog" |
بمجرد أن تتقن الأساسيات، يمكنك إنشاء أنماط أكثر تعقيدًا لحل تحديات معالجة النصوص المعقدة:
1^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$
2
يتحقق هذا النمط من عناوين البريد الإلكتروني من خلال ضمان أنها تتبع الصيغة القياسية: username@domain.tld.
1^(https?:\/\/)?(www\.)?[-a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_\+.~#?&//=]*)$
2
يتحقق هذا النمط من عناوين URL، بما في ذلك تلك التي تحتوي على أو بدون بروتوكول http/https.
1^\(?(\d{3})\)?[- ]?(\d{3})[- ]?(\d{4})$
2
يتطابق هذا النمط مع أرقام الهواتف الأمريكية في صيغ مختلفة: (123) 456-7890، 123-456-7890، أو 1234567890.
1^\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])$
2
يتحقق هذا النمط من التواريخ في صيغة YYYY-MM-DD، مع تحقق أساسي من نطاقات الشهر واليوم.
تسمح لك التأكيدات المتقدمة بالبحث المتقدم والبحث الخلفي بمطابقة الأنماط فقط إذا كانت متبوعة بنمط آخر أو مسبوقة بنمط آخر:
a(?=b)
يتطابق مع "a" فقط إذا كانت متبوعة بـ "b"a(?!b)
يتطابق مع "a" فقط إذا لم تكن متبوعة بـ "b"(?<=a)b
يتطابق مع "b" فقط إذا كانت مسبوقة بـ "a"(?<!a)b
يتطابق مع "b" فقط إذا لم تكن مسبوقة بـ "a"يدعم مختبر التعبير العادي لدينا علامات مختلفة تعدل كيفية مطابقة الأنماط:
^
و $
يتطابقان مع بداية/نهاية كل سطرتوجد العديد من التطبيقات العملية للتعبيرات العادية عبر مجالات مختلفة:
التحقق من النماذج: ضمان تطابق إدخالات المستخدم مع الصيغ المطلوبة:
^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$
^(?=.*[A-Za-z])(?=.*\d)[A-Za-z\d]{8,}$
^(https?:\/\/)?([\da-z\.-]+)\.([a-z\.]{2,6})([\/\w \.-]*)*\/?$
تحليل HTML: استخراج عناصر أو سمات محددة:
<img[^>]+src="([^">]+)"
<a[^>]+href="([^">]+)"
تحليل ملفات السجل: استخراج المعلومات من إدخالات السجل:
\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: .*
تحليل CSV: معالجة القيم المفصولة بفواصل مع حقول محتملة محاطة بعلامات اقتباس:
(?:^|,)(?:"([^"]*(?:""[^"]*)*)"|([^,]*))
البحث والاستبدال: تحديد الأنماط للاستبدال:
<[^>]*>
(\d{3})(\d{3})(\d{4})
→ ($1) $2-$3
استخراج المحتوى: سحب معلومات محددة من نص غير منظم:
\b(?:Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s+\d{1,2},\s+\d{4}\b
\$\d+(?:\.\d{2})?
تمييز الصيغة: تحديد تراكيب اللغة:
\b(?:var|let|const)\s+([a-zA-Z_$][\w$]*)\b
function\s+([a-zA-Z_$][\w$]*)\s*\(
إعادة هيكلة التعليمات البرمجية: العثور على الأنماط التي تحتاج إلى تحديث:
\.oldMethod\(
eval\(
يتضمن مختبر نمط التعبير العادي لدينا نظام إدارة الأنماط الذي يسمح لك بحفظ وإعادة استخدام تعبيراتك المستخدمة بشكل متكرر:
فكر في حفظ الأنماط التي:
عند حفظ الأنماط، استخدم تسميات وصفية تشير إلى:
نظم أنماطك المحفوظة حسب:
بينما لا تدعم أداتنا مشاركة الأنماط مباشرة بين المستخدمين، يمكنك:
حتى المطورين ذوي الخبرة يواجهون تحديات مع التعبيرات العادية. إليك حلول لبعض القضايا الشائعة:
إذا أظهر نمطك خطأ في التحقق:
إذا كان التعبير العادي الخاص بك بطيئًا أو يسبب تأخيرًا في المتصفح:
(a+)+
)إذا كان نمطك يتطابق مع نص غير مرغوب فيه:
^
و $
) لمطابقة السلاسل بالكامل\b
) حيثما كان ذلك مناسبًاإذا لم يتطابق نمطك مع النص المتوقع:
i
)بينما يعد التعبير العادي قويًا، إلا أنه ليس دائمًا أفضل حل لكل مهمة معالجة نصوص:
لعمليات النص البسيطة، غالبًا ما تكون طرق السلسلة الأصلية أوضح وأكثر كفاءة:
String.indexOf()
للعثور على الأجزاء الفرعيةString.startsWith()
و String.endsWith()
للتحقق من حدود السلسلةString.split()
للتجزئة الأساسيةلأشكال البيانات المنظمة، فإن المحللات المخصصة أكثر موثوقية:
لفهم معنى النص بدلاً من مجرد الأنماط:
فكر في البدائل للتعبير العادي عندما:
التعبير العادي (regex) هو تسلسل من الأحرف الذي يحدد نمط بحث. يمكن استخدام هذه الأنماط لعمليات البحث عن السلاسل، والمطابقة، والتلاعب بالنص.
يساعدك مختبر نمط التعبير العادي على تطوير وتصحيح التعبيرات العادية من خلال توفير ملاحظات بصرية فورية حول التطابقات، والتحقق من صحة صيغة النمط، والسماح لك بالتجربة مع أنماط وعلامات مختلفة دون الحاجة إلى تنفيذها في الشيفرة أولاً.
لمطابقة أحرف خاصة حرفية لها معنى خاص في التعبير العادي، تحتاج إلى الهروب منها باستخدام شرطة مائلة. على سبيل المثال، لمطابقة نقطة حرفية، استخدم \.
بدلاً من مجرد .
.
.*
و .*?
في نمط التعبير العادي؟.*
هو محدد جشع يتطابق مع أكبر عدد ممكن من الأحرف، بينما .*?
هو محدد كسول (غير جشع) يتطابق مع أقل عدد ممكن من الأحرف. هذه التفرقة مهمة عندما تريد العثور على أقصر تطابق بدلاً من الأطول.
بينما تكون صيغة التعبير العادي الأساسية متشابهة عبر العديد من اللغات، هناك اختلافات طفيفة في التنفيذ. يستخدم مختبرنا محرك التعبير العادي الخاص بـ JavaScript، والذي يتوافق مع العديد من لغات الويب ولكنه قد يحتوي على اختلافات عن التعبير العادي في لغات مثل Python أو Java أو Perl.
للتحقق من أن سلسلة كاملة تتطابق مع نمط، استخدم نقطة التثبيت ^
في البداية ونقطة التثبيت $
في النهاية من تعبيرك العادي. على سبيل المثال، ^[0-9]+$
سيتطابق فقط مع السلاسل التي تتكون بالكامل من الأرقام.
تسمح لك المجموعات القابلة للاحتجاز، التي تم إنشاؤها باستخدام الأقواس ()
, باستخراج أجزاء محددة من النص المتطابق. في مختبرنا، يمكنك رؤية جميع التطابقات، بما في ذلك المجموعات المحتجزة. في لغات البرمجة، يمكنك عادةً الوصول إلى هذه الاحتجازات من خلال فهرسة نتيجة المطابقة.
لتحسين كفاءة التعبير العادي: كن محددًا مع فئات الأحرف، وتجنب استخدام المجموعات القابلة للاحتجاز غير الضرورية (استخدم المجموعات غير القابلة للاحتجاز (?:...)
عندما يكون ذلك ممكنًا)، وحد من استخدام البحث المتقدم/البحث الخلفي، وتجنب أنماط العودة الكارثية مثل المحددات المتداخلة.
تشمل الأخطاء الشائعة: عدم الهروب من الأحرف الخاصة، وإنشاء أنماط جشعة للغاية، ونسيان تثبيت الأنماط (مع ^
و $
)، وكتابة تعبيرات معقدة للغاية يصعب صيانتها.
لا تعد التعبيرات العادية مناسبة جيدًا لتحليل الهياكل المتداخلة مثل HTML أو XML. بينما يمكنك إنشاء أنماط تعبير عادي لمطابقة HTML البسيطة، فمن الأفضل عمومًا استخدام محلل HTML مخصص لمعالجة HTML المعقدة.
جرب مختبر نمط التعبير العادي لدينا اليوم لتبسيط مهام معالجة النصوص الخاصة بك، والتحقق من صيغ الإدخال، واستخراج بيانات ذات مغزى من النصوص غير المنظمة. سواء كنت مبتدئًا يتعلم أساسيات التعبيرات العادية أو مطورًا ذو خبرة يعمل على مطابقة أنماط معقدة، فإن أداتنا توفر لك الميزات التي تحتاجها لإنشاء واختبار وتنقيح أنماط التعبير العادي الخاصة بك بكفاءة.
اكتشف المزيد من الأدوات التي قد تكون مفيدة لسير عملك