ورقة مرجعية للتعبيرات المنتظمة
جديدمرجع قابل للبحث لرموز التعبيرات المنتظمة وأعلامها.
Live regex tester
Type a pattern and a test string — matches highlight instantly, with every capture group broken out below.
Common regex patterns
Battle-tested patterns — load one into the tester to see it run, or copy it straight out.
[\w.+-]+@[\w-]+\.[\w.-]+ https?:\/\/[^\s]+ \(?\d{3}\)?[-.\s]?\d{3}[-.\s]?\d{4} (\d{4})-(\d{2})-(\d{2}) ([01]?\d|2[0-3]):[0-5]\d \b(?:\d{1,3}\.){3}\d{1,3}\b #(?:[0-9a-fA-F]{6}|[0-9a-fA-F]{3})\b [a-z0-9]+(?:-[a-z0-9]+)* -?\d+ (?=.*[a-z])(?=.*[A-Z])(?=.*\d).{8,} \b(\w+)\s+\1\b [ \t]+$ Regex cheat sheet
Every token, grouped with a quick example. Search by symbol or keyword; click any token to copy it.
No tokens match your search.
Regex flavors: JavaScript, Python, Java, PCRE & grep
The tester above runs JavaScript regex. Most syntax is shared — here's what differs between engines.
| Feature | JavaScript | Python (re) | Java | PCRE / grep |
|---|---|---|---|---|
| Named group | (?<name>…) | (?P<name>…) | (?<name>…) | (?P<name>…) |
| Dotall (. matches \n) | s flag | re.DOTALL / (?s) | Pattern.DOTALL | (?s) |
| Ignore case | i flag | re.IGNORECASE / (?i) | (?i) flag | (?i) / grep -i |
| Lookbehind | (?<=…) ES2018+ | Supported | Supported | grep -P only |
| Backslash in source | /\d/ literal | r"\d" raw string | "\\d" doubled | \d |
| Find every match | str.matchAll(/…/g) | re.findall() | Matcher.find() | grep -o |
| POSIX class [[:digit:]] | use \d instead | use \d instead | supported | supported |
Runs entirely in your browser. Nothing is uploaded.
مرجع التعبيرات النمطية مع أمثلة واختبار مباشر
يضع هذا المرجع الشامل للتعبيرات النمطية كل رمز في متناول يدك — ويقرنه بـمختبر مباشر حتى تتمكن من تجربة النمط فور البحث عنه. اكتب النمط، اختر الأعلام المناسبة، ألصق نص الاختبار، وستُبرز التطابقات فوراً مع عرض كل مجموعة التقاط بشكل منفصل.
لا يوجد شيء لتثبيته ولا حساب للإنشاء: يعمل كامل مرجع التعبيرات النمطية في متصفحك، لذا لن يُرفع أي نص تختبره. لا إعلانات، لا حواجز تسجيل دخول، ولا حدود لحجم نصوص الاختبار.
كل رموز التعبيرات النمطية مع الأمثلة
يغطي المرجع البنية التي تستخدمها فعلاً: فئات الأحرف (\d، \w، \s والمجموعات المخصصة مثل [a-z])، المرسيات والحدود (^، $، \b)، المحددات الكمية (*، +، ?، {n,m} وأشكالها الكسولة)، المجموعات والتبديل، lookahead و lookbehind، الأعلام g i m s u y، والهروب اللازم للنقاط والشرطات المائلة.
يحمل كل إدخال مثالاً قصيراً ومحدداً — \bcat\b يطابق الكلمة 'cat' دون أن يطابق 'category' — حتى يرسخ المعنى في الذهن. ابحث عن رموز التعبيرات النمطية بالرمز أو الكلمة الرئيسية وانقر على أي منها لنسخه.
اختبر نمطك أثناء بنائه
لا تستطيع المراجع الثابتة إخبارك بما إذا كان نمطك يعمل فعلاً. يقوم مختبر التعبيرات النمطية المدمج بتجميع التعبير مباشرة، ويبرز كل تطابق في نص العينة، ويسرد مجموعات الالتقاط المرقمة والمسماة لكل منها.
شغّل أعلام global وcase-insensitive وmultiline وdotall وUnicode وsticky وشاهد النتائج تتغير. إذا كان النمط غير صالح، ستحصل على رسالة خطأ واضحة بدلاً من فشل صامت — ورؤية النمط يتطابق في الوقت الفعلي هي أسرع طريقة لتعلم التعبيرات النمطية.
أنماط شائعة جاهزة للنسخ
بعض الأنماط تتكرر مراراً — عناوين البريد الإلكتروني، عناوين URL، أرقام الهاتف، تواريخ ISO، عناوين IPv4، ألوان hex وفحوصات كلمات المرور القوية. يوفر لك قسم الأنماط الشائعة نسخة مدروسة من كل منها: حمّلها مباشرة في المختبر لمشاهدتها تعمل على نص مثال، أو انسخها في كودك.
هي نقاط بداية عملية يمكنك تكييفها وليست قواعد تناسب الجميع، وهذا بالضبط سبب أهمية اختبارها على بياناتك الخاصة.
المقارنة مع regex101.com وregexr.com
regex101.com هو الأداة المتخصصة الأكثر شعبية للتعبيرات النمطية على الويب — ولسبب وجيه. يدعم ستة أنواع من التعبيرات النمطية (PCRE، Python re، Golang، Java، .NET، وJavaScript)، ويعرض لوحة شرح رمز برمز، ويتتبع سجل التطابقات. إذا كنت تصحح خطأ في نمط إنتاج معقد أو تحتاج إلى التحقق من أن النمط يعمل بشكل متطابق عبر PHP وPython، فإن regex101 هو الأداة المناسبة. يقدم regexr.com تجربة مماثلة مع مكتبة عامة من الأنماط المساهمة.
تقع صفحة UtiloKit هذه في نقطة مختلفة من سير العمل. تجمع بين جدول مرجع رموز قابل للبحث ومختبر مباشر على نفس الشاشة، محسّن للحالة الشائعة التي تعرف فيها تقريباً ما تحتاجه لكنك لا تتذكر الصياغة الدقيقة. تهبط على الصفحة، تبحث عن الرمز، تلصق نص اختبار سريع، وتعود إلى محررك — بدون تبديل تبويبات، بدون حساب، بدون إعلانات. استخدم الاثنتين: regex101 لتصحيح الأخطاء العميقة، وهذه الصفحة للبحث السريع.
أنواع التعبيرات النمطية: JavaScript وPython وJava وPCRE وgrep
معظم بناء التعبيرات النمطية قابل للنقل، لكن المحركات تختلف في التفاصيل. يستخدم المختبر هنا تعبيرات JavaScript النمطية، وهي نفس النوع الذي يستخدمه Node.js والمتصفح. وحدة Python re تريد سلاسل خام مثل r"\d+" وتسمي المجموعات (?P<name>…)؛ Java تحتاج إلى شرطات مائلة عكسية مضاعفة في نصوص السلاسل؛ PCRE (PHP، وgrep -P) هو الأكثر اكتمالاً من حيث الميزات؛ وPOSIX grep -E لها قواعد هروب خاصة بها.
يوضح جدول الأنواع المجموعات المسماة، dotall، عدم التمييز بين الحالات، lookbehind و'إيجاد الكل' عبر كل محرك، حتى تتمكن من نقل نمط من Python إلى JavaScript — أو العكس — بدون مفاجآت.
الجشع مقابل الكسل، وفخاخ شائعة أخرى
أمران يربكان الجميع تقريباً. أولاً، المحددات الكمية جشعة افتراضياً: .+ تمسك بأكبر قدر ممكن، لذا لمطابقة وسم HTML واحد عادةً ما تريد الشكل الكسول .+? بدلاً منه. ثانياً، نسيان تهريب الأحرف الخاصة — نقطة مجردة . تطابق أي حرف، بينما \. تطابق نقطة حرفية، لذا يحتاج نمط السعر إلى \d+\.\d{2}.
ابقِ هذا المرجع مفتوحاً أثناء عملك وستتوقف هذه الأمور عن كونها مفاجآت.
خاص، فوري ومجاني
لا يوجد شيء لتثبيته ولا حساب للإنشاء. كل بحث، وكل تطابق، وكل نسخ يتم محلياً في متصفحك — أنماطك وبيانات الاختبار الخاصة بك لا تغادر جهازك أبداً. احفظ هذا المرجع الشامل للتعبيرات النمطية في المفضلة وارجع إليه كلما احتجت إلى تذكر رمز أو التحقق من نمط.
Frequently asked questions
ما هو التعبير النمطي مع مثال؟
التعبير النمطي (regex) هو نمط مضغوط يصف مجموعة من السلاسل النصية، ويُستخدم للبحث والتطابق واستبدال النص. مثلاً، النمط \d{3}-\d{4} يطابق جزءاً من رقم هاتف مثل 555-1234، لأن \d تعني 'رقم' و{3} تعني 'ثلاثة منها بالضبط'. تُشغّل التعبيرات النمطية عمليات البحث والاستبدال والتحقق من النماذج وتحليل السجلات في كل لغة برمجة ومحرر كود تقريباً. يتيح لك المختبر المباشر في أعلى هذه الصفحة تجربة أي نمط فوراً.
ما هي رموز التعبيرات النمطية الأساسية؟
اللبنات الأساسية هي: . (أي حرف عدا السطر الجديد)، \d (رقم)، \w (حرف كلمة — حرف أو رقم أو شرطة سفلية)، \s (مسافة بيضاء)، المرسيات ^ (البداية) و$ (النهاية)، والمحددات الكمية * (صفر أو أكثر)، + (واحد أو أكثر) و? (اختياري). لذا \w+ يطابق كلمة كاملة و\d+ يطابق رقماً كاملاً مثل 2024. ادمجها — ^\d+$ يطابق سطراً مكوناً من أرقام فقط. كل رمز في هذا المرجع يتضمن مثالاً قابلاً للنسخ.
ماذا يعني \d و\w و\s في regex؟
\d يطابق أي رقم من 0 إلى 9؛ \w يطابق حرف كلمة (a-z، A-Z، 0-9 أو _)؛ \s يطابق المسافة البيضاء (مسافة، تبويب أو سطر جديد). نظيراتها بالأحرف الكبيرة هي النفي: \D هو غير رقم، \W حرف غير كلمة و\S حرف غير مسافة. مثلاً، في النص 'a5 b'، \d يطابق 5، \w يطابق a و5 وb، و\s يطابق المسافة بينهما. هذه الفئات الثلاث المختصرة تغطي الغالبية العظمى من أنماط التعبيرات النمطية اليومية.
ما هي المرسيات في التعبيرات النمطية؟
المرسيات تطابق موضعاً لا حرفاً. ^ يطابق بداية السلسلة (أو كل سطر مع العلم m)، $ يطابق النهاية، \b يطابق حد كلمة و\B يطابق غير الحد. مثلاً، ^\d+$ يطابق سلسلة مكونة من أرقام فقط، و\bcat\b يطابق الكلمة 'cat' دون أن يطابق 'cat' داخل 'category'. كثيراً ما يُساء فهم المرسيات على أنها تطابق أحرفاً — فهي في الواقع تطابق مواضع في النص لا أحرفاً محددة.
ما هي المحددات الكمية في التعبيرات النمطية؟
المحددات الكمية تحدد عدد مرات تكرار الرمز السابق: * هو صفر أو أكثر، + هو واحد أو أكثر، ? هو صفر أو واحد (اختياري)، {n} هو بالضبط n مرة، {n,} هو n أو أكثر، و{n,m} هو بين n وm. هي جشعة افتراضياً (تطابق أكبر قدر ممكن)؛ أضف ? لجعلها كسولة. مثلاً \d{1,3} يطابق 1 إلى 3 أرقام، والكسول .+? يطابق أقل قدر ممكن. المحددات الكسولة ضرورية عند مطابقة وسوم HTML أو السلاسل بين علامات اقتباس.
ما هي المجموعات ومجموعات الالتقاط في التعبيرات النمطية؟
الأقواس (…) تنشئ مجموعة التقاط يمكنك استخراجها أو إعادة استخدامها — (\d{4})-(\d{2}) تلتقط السنة في المجموعة 1 والشهر في المجموعة 2 من '2024-06'. استخدم (?:…) لمجموعة غير ملتقطة عندما تحتاج فقط إلى التجميع من أجل محدد كمي، و(?<name>…) لمجموعة مسماة مثل (?<year>\d{4}). المرجع الخلفي مثل \1 يعيد مطابقة ما التقطته المجموعة 1، لذا (\w)\1 يجد حرفاً مكرراً — مثل 'll' في 'hello'.
ما هو lookahead وlookbehind في التعبيرات النمطية؟
Lookarounds تؤكد أن نصاً موجود (أو غير موجود) بجوار تطابقك دون استهلاكه. (?=…) هو lookahead إيجابي، (?!…) هو lookahead سلبي، (?<=…) هو lookbehind إيجابي و(?<!…) هو lookbehind سلبي. مثلاً، \d+(?=px) يطابق 5 في '5px' لكنه يستبعد 'px'، و(?<=\$)\d+ يطابق 9 في '$9' بمتطلبة وجود علامة دولار قبله. Lookarounds من الميزات التي تميز محركات التعبيرات النمطية الحديثة عن POSIX grep.
ما هي أعلام التعبيرات النمطية؟
الأعلام تغير طريقة تطبيق النمط بأكمله: g (عالمي) يجد كل تطابق، i يجعله غير حساس لحالة الأحرف، m (متعدد الأسطر) يجعل ^ و$ يطابقان كل سطر، s (dotall) يتيح لـ. مطابقة الأسطر الجديدة، u يفعّل Unicode الكامل وy (لزج) يربط التطابق بموضع ثابت. في JavaScript تضيفها بعد الشرطة المائلة الختامية، لذا /cat/gi يطابق 'Cat' و'CAT' في كل مكان في النص. يحتوي المختبر في هذه الصفحة على أزرار تبديل لكل علم حتى تتمكن من رؤية تأثيره مباشرة.
كيف أكتب تعبيراً نمطياً للبريد الإلكتروني أو رقم الهاتف أو عنوان URL؟
أنماط بداية عملية: البريد الإلكتروني — [\w.+-]+@[\w-]+\.[\w.-]+ ؛ URL — https?:\/\/[^\s]+ ؛ رقم هاتف — \(?\d{3}\)?[-.\s]?\d{3}[-.\s]?\d{4}، الذي يطابق كلاً من 555-123-4567 و(555) 123 4567. هذه أنماط عملية لا شاملة — معيار البريد الإلكتروني الرسمي أكثر تعقيداً بكثير — لذا اختبرها دائماً على بياناتك الحقيقية باستخدام المختبر المباشر أعلاه، حيث كل منها نقرة واحدة في قائمة الأنماط الشائعة.
كيف أهرب الأحرف الخاصة في التعبيرات النمطية؟
ضع شرطة مائلة عكسية قبل أي حرف خاص لمطابقته حرفياً. الأحرف التي تحتاج عادةً إلى تهريب هي: . ^ $ * + ? ( ) [ ] { } | \ و/. مثلاً \. تطابق نقطة حرفية و\$ تطابق علامة الدولار، لذا \d+\.\d{2} يطابق سعراً مثل 19.99. داخل فئة أحرف معظم هذه تفقد معناها الخاص، لذا [.] أيضاً يطابق نقطة حرفية بدون تهريب.
هل تختلف التعبيرات النمطية بين JavaScript وPython وJava؟
البناء الأساسي مشترك، لكن التفاصيل تختلف. JavaScript تسمي المجموعات (?<name>…) بينما Python تستخدم (?P<name>…)؛ Python تستخدم سلاسل خام مثل r"\d+" وJava تحتاج إلى شرطات مائلة عكسية مضاعفة في نصوص السلاسل ("\\d+"). Dotall هو العلم s في JS، وre.DOTALL في Python وPattern.DOTALL في Java. يلخص جدول الأنواع في هذه الصفحة الفروق للغات Python وJava وPCRE وgrep حتى تتمكن من نقل نمط بين اللغات بثقة.
ما هي التعبيرات النمطية في Python؟
في Python، التعبيرات النمطية موجودة في وحدة re المدمجة. عادةً تكتب النمط كسلسلة خام وتستدعي دوالاً مثل re.search أو re.findall أو re.sub — مثلاً re.findall(r"\d+", "a1 b22") تُرجع ['1', '22']. المجموعات المسماة تستخدم (?P<name>…) وتقرأها بـmatch.group('name'). مرجع الرموز في هذه الصفحة ينطبق مباشرة على تعبيرات Python النمطية؛ الفرق الوحيد هو واجهة برمجة التطبيقات المحيطة وبعض أسماء الأعلام عن JavaScript.
كيف أختبر تعبيراً نمطياً؟
استخدم المختبر المباشر في أعلى هذه الصفحة: اكتب نمطك بين الشرطتين المائلتين، شغّل الأعلام التي تحتاجها، والصق سلسلة اختبار. تُبرز التطابقات في الوقت الفعلي، وتُعرض كل مجموعة التقاط مرقمة ومسماة في الأسفل، وتُظهر النمط غير الصالح رسالة خطأ مضمنة بدلاً من الفشل الصامت — كل ذلك يعمل محلياً في متصفحك، فلا شيء تلصقه يُرفع. أدوات مثل regex101.com وregexr.com تعمل بشكل مماثل؛ هذه تجمع المرجع والمختبر في صفحة واحدة.
كيف تقارن هذه الأداة بـregex101.com وregexr.com؟
regex101.com هو المعيار الصناعي لتصحيح أخطاء التعبيرات النمطية العميقة — يدعم أنواعاً متعددة (PCRE، Python، Java، .NET، Golang) ويعطي شرحاً تفصيلياً لكل رمز في نمطك. regexr.com يقدم تجربة مماثلة مع مكتبة مجتمعية من الأنماط. كلاهما أدوات متخصصة ممتازة. مرجع UtiloKit هذا مختلف: يقرن بين جدول مرجع الرموز ومختبر أساسي مباشر على نفس الصفحة، حتى تتمكن من البحث عن شيء والتحقق منه في ثوانٍ بدون تبديل التبويبات. لأعمال التعبيرات النمطية الإنتاجية المعقدة، مقارنة الأنواع ومصحح الأخطاء التفصيلي في regex101.com لا يُضاهيان؛ للبحث السريع أثناء التطوير، تُحمّل صفحة المرجع هذه بشكل أسرع ولا تتطلب أي تنقل.
لماذا تُسمى التعبيرات النمطية بهذا الاسم؟
يأتي الاسم من نظرية اللغات الشكلية. في خمسينيات القرن الماضي وصف عالم الرياضيات ستيفن كلين 'المجموعات النظامية' — اللغات التي يمكن لآلة حالة محدودة بسيطة التعرف عليها — وأصبحت الرموز التي استخدمها لها معروفة بالتعبير النمطي. تضيف محركات التعبيرات النمطية الحديثة ميزات مثل المراجع الخلفية والـlookarounds التي تتجاوز لغات 'نظامية' بالمعنى الدقيق، لكن الاسم التاريخي ظل راسخاً.
Related tools
عرض كل الأدواتترميز / فك ترميز كيانات HTML
رمّز كيانات HTML وفُكّ ترميزها، مع خيار الترميز الرقمي.
منشئ تعبيرات Cron
اشرح جدول Cron بلغة بسيطة وعاين أوقات تشغيله القادمة.
مصغّر HTML
اضغط شيفرة HTML بإزالة التعليقات وطيّ المسافات البيضاء.
مصغّر CSS
قلّص حجم CSS بإزالة التعليقات والمسافات البيضاء غير الضرورية.
ترميز / فك ترميز JSON
رمّز النص الخام إلى سلسلة آمنة لـ JSON وفُكّ ترميزها مجددًا.
رموز حالة HTTP
مرجع قابل للبحث لرموز حالة HTTP بمعانٍ مبسّطة.