مولّد التعبيرات النمطية ومحرر Regex البصري — بناء واختبار وتصحيح التعبيرات القياسية

أداة مجانية ومحلية بالكامل لبناء وتوليد واختبار التعبيرات النمطية (Regex) بصرياً. تدعم مطابقة الأنماط الحية، واستخراج المجموعات، وقوالب التحقق من البريد والهواتف والروابط، ومطابقة معايير ECMAScript في المتصفح.

🔒 100% Private
⚡ Completely Free
🌐 Runs in Browser
📦 Export Ready
⚡

مولّد التعبيرات النمطية ومحرر Regex البصري — بناء واختبار وتصحيح التعبيرات القياسية

Tool Workspace

Ready

جاري تحميل الأداة...

  1. اختر قالباً جاهزاً أو ابدأ بنمط مفرغ — حدد نمطاً قياسياً جاهزاً (بريد إلكتروني، هاتف دولي، رابط URL، عنوان IP، تاريخ، كلمة مرور قوية) أو ابدأ في صياغة نمطك الخاص.
  2. ركّب الرموز والمحارف وفئات الحروف — استخدم فئات المحارف (`[A-Za-z0-9]`)، ومحددات التكرار (`+`، `*`، `{n,m}`)، والمجموعات (`(?:...)`)، ومؤشرات التحقق المسبق (`(?=...)`).
  3. أدخل نص الاختبار في بيئة المعاينة — اكتب أو الصق نماذج حية من النصوص أو سجلات الخادم لاختبار كفاءة النمط في استخراج ومطابقة البيانات.
  4. اضبط أعلام محرك البحث (Flags) — فعّل البحث العام (`g`)، أو تجاهل حالة الأحرف (`i`)، أو نمط تعدد الأسطر (`m`)، أو مطابقة النقطة للأسطر (`s`).
  5. عاين النتائج والمجموعات المستخرجة بصرياً — تابع تلوين المطابقات الفورية، واستعرض تفاصيل المجموعات الفرعية ومواضع البداية والنهاية بدقة متناهية.
  6. انسخ النمط أو صدّر الأكواد البرمجية — انسخ التعبير النمطي النهائي بضغطة زر واحدة لتطبيقه في مشاريعك البرمجية بـ JavaScript أو Python أو PHP أو Go.
## 1. نظرة استهلالية تأسيسية: نظرية اللغات الصورية ومعمارية التعبيرات النمطية (Regex) في النظرية الحوسبية وهندسة البرمجيات المعاصرة، تُمثّل **التعبيرات النمطية (Regular Expressions - Regex)** نظاماً جبرياً صورياً موحداً لوصف اللغات النمطية ضمن تسلسل تشومسكي اللغوي. وضع أسس هذه التعبيرات عالم الرياضيات الأمريكي ستيفن كول كلين في خمسينيات القرن الماضي لنمذجة الشبكات العصبية والآلات ذات الحالات المنتهية (Finite Automata). وسرعان ما تحولت من إطار نظري أكاديمي إلى الأداة البرمجية الأكثر انتشاراً وأهمية على الإطلاق لمعالجة النصوص، وتحليل البيانات، وتدقيق المدخلات عبر كافة لغات البرمجة وأنظمة التشغيل وقواعد البيانات. تعتمد محركات التعبيرات النمطية داخلياً على محاكاة آلات الحالات المنتهية، وتحديداً الآلات المحددة (DFA) والآلات غير المحددة ذات التراجع الخلفي (Backtracking NFA). وبينما تعمل محركات DFA في وقت زمني خطي صارم ($O(n)$)، فإنها تفتقر للقدرة على دعم الميزات المتقدمة كالمجموعات المسترجعة والمطابقات الكسولة والمؤشرات الاستشرافية (Lookarounds). ولهذا السبب، تعتمد أغلب بيئات التطوير الحديثة (مثل محرك JavaScript V8، ومكتبة Python `re`، و PCRE، و Java) على محركات NFA ذات التراجع الخلفي، والتي تمنح المطورين قوة تعبيرية هائلة تمكنهم من تدقيق البيانات المعقدة وتطهير النصوص وتفكيك سجلات الخوادم الضخمة. وعلى الرغم من هذه القوة الفائقة، فإن كتابة واختبار التعبيرات النمطية يدوياً يُعد من أصعب التحديات البرمجية: - **كثافة الرموز وغموض الصياغة:** تتكدس المحارف الخاصة مثل `^` و `$` و `*` و `+` و `?` و `\b` و `(?:...)` لتشكل سلاسل نصية مضغوطة يصعب قراءتها وتصحيحها ذهنياً دون أدوات مساعدة. - **خطر التراجع الكارثي (ReDoS):** يؤدي تداخل محددات التكرار المبهمة (مثل `(a+)+$`) عند اختبارها ضد نصوص غير متطابقة إلى استهلاك أسي للوقت والمعالج ($O(2^n)$)، مما يتسبب في تجميد الخوادم وتعطل الخدمات بالكامل فيما يُعرف بهجمات حجب الخدمة عبر التعبيرات النمطية (ReDoS). - **إغفال علامات التثبيت الحدودية:** نسيان وضع علامة البداية (`^`) والنهاية (`$`) يسمح للبيانات الخبيثة بتجاوز بوابات التحقق إذا احتوت على جزء مطابق فقط. - **تعقيد الهروب البرمجي (Escaping):** تكرار استخدام الشرطة المائلة العكسية لتهريب النقاط والأقواس والرموز يؤدي إلى أخطاء صياغة متكررة في الشيفرات المصدرية. يأتي **استوديو مولّد التعبيرات النمطية ومحرر Regex البصري** ليقدم بيئة عمل متكاملة، تفاعلية، ومحلية بالكامل داخل المتصفح. من خلال قوالب الأنماط الجاهزة، والتحليل اللحظي لكل نقرة، والتلوين التفاعلي للمطابقات، وتفكيك مجموعات الالتقاط، يُمكّن الاستوديو المطورين ومهندسي البيانات من صياغة وتصحيح تعبيرات نمطية متينة وجاهزة لبيئات الإنتاج دون إرسال أي حرف من بياناتهم أو سجلاتهم السرية عبر الشبكة. --- ## 2. آلية العمل البرمجية وتشريح دورة معالجة ومطابقة الأنماط لفهم كيفية قيام الاستوديو بفحص وتجميع واختبار التعبيرات النمطية بأمان محلياً، يوضح المخطط الهيكلي التالي مراحل معالجة النصوص البرمجية: ``` +-----------------------------------------------------------------------------------------------+ | مخطط دورة تجميع وفحص التعبيرات النمطية داخل المتصفح | +-----------------------------------------------------------------------------------------------+ | | | 1. مدخلات النمط البرمجي: r"^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$" | | 2. أعلام المطابقة المختارة: [g] عام | [i] تجاهل الأحرف | [m] متعدد الأسطر | | | | | v | | 3. التحقق والتجميع الصوري: new RegExp(pattern, flags) داخل بيئة المتصفح المعزولة | | (التقاط أخطاء الصياغة: أقواس غير مغلقة أو فئات غير صالحة) | | | | | +------------------+-------------------+ | | | خطأ في الصياغة | نمط صالح ومجمّع بنجاح | | v v | | [عرض تنبيه بصري] 4. مكرر المطابقة: String.prototype.matchAll() | | | | | v | | 5. استخراج البيانات: | | - النص المطابق كاملاً والمصفوفة العامة | | - فهارس البداية والنهاية [Index / Length] | | - المجموعات الملتقطة والمجموعات المسماة | | | | | v | | 6. محرك التلوين البصري: حقن وسوم التمييز الافتراضية مع تمييز لوني لكل مجموعة | | | | | v | | 7. الإخراج والعرض: جدول المطابقات التفاعلي وتفصيل المجموعات الفرعية بالأرقام | +-----------------------------------------------------------------------------------------------+ ``` يقوم الاستوديو بتنفيذ هذه المعالجة فورياً عبر محرك JavaScript المدمج في متصفحك. ومع كل تعديل على التعبير أو نص الاختبار، يُعاد التقييم محلياً مع معالجة دقيقة للاستثناءات، مما يتيح لك رؤية أثر كل رمز على الفور. --- ## 3. دليل الاستخدام الشامل: من الفكرة إلى النمط البرمجي المعتمد اتبع الخطوات الهندسية التالية لبناء واختبار ونشر تعبير نمطي متين في دقائق معدودة: ### الخطوة 1: اختيار نمط جاهز أو البدء بقالب مفرغ ابدأ باختيار قالب معتمد من قائمة **الأنماط الجاهزة**: - **التحقق من البريد الإلكتروني (مطابق لمعيار RFC 5322):** يضمن صحة اسم المستخدم والنطاق وحظر المسافات والرموز غير المسموحة. - **أرقام الهواتف الدولية (معيار E.164):** يدعم رموز الدول، والأقواس الاختيارية، وفواصل الشرطات، والأطوال المتغيرة. - **روابط الإنترنت (URLs):** يطابق بروتوكولات HTTP و HTTPS و FTP، وأسماء النطاقات، والمنافذ، ومعاملات الاستعلام، والشظايا. - **عناوين IP (الإصدار الرابع والسادس):** يتحقق من حدود الأرقام العشرية (0-255) في IPv4 ومجموعات التنسيق السداسي عشري في IPv6. - **التواريخ القياسية (ISO 8601):** يتحقق من صحة السنة والشهور (01-12) والأيام (01-31). - **قواعد تعقيد كلمات المرور:** نموذج متقدم يوضح كيفية استخدام المؤشرات الاستشرافية لفرض وجود حروف كبيرة وصغيرة وأرقام ورموز. ### الخطوة 2: تركيب الرموز ومجموعات المحارف والتثبيت الحدودي قم بتخصيص النمط باستخدام القواعد الأساسية: - **التثبيت الحدودي:** استخدم علامة الإقحام `^` للدلالة على بداية النص، وعلامة الدولار `$` للدلالة على نهايته. ويُعد غياب هذه العلامات السبب الأول لثغرات تجاوز التحقق الأمني. - **فئات المحارف:** اجمع الحروف المقبولة داخل أقواس معقوفة `[a-z0-9]`. واستخدم النفي `[^0-9]` لمطابقة أي محرف باستثناء الأرقام. - **الرموز المختصرة:** استخدم الاختصارات الشائعة: `\d` للأرقام، `\w` للحروف والكلمات، و `\s` للمسافات البيضاء والأسطر الجديدة، وأحرفها الكبيرة المعاكسة (`\D`، `\W`، `\S`). ### الخطوة 3: تحديد محددات التكرار ونمط الجشع (Greedy vs Lazy) حدد عدد مرات تكرار كل رمز: - `?` للمطابقة **صفر أو مرة واحدة** (عنصر اختياري). - `*` للمطابقة **صفر أو أكثر**. - `+` للمطابقة **مرة واحدة أو أكثر**. - `{min,max}` لتحديد نطاق تكرار دقيق (مثل `{8,32}` لفرض طول بين 8 و 32 محرفاً). - أضف علامة الاستفهام بعد أي محدد تكرار لتحويله من **جشع** (يستهلك أطول نص ممكن) إلى **كسول** (يستهلك أقصر نص ممكن، مثل `.*?`). ### الخطوة 4: استخدام مجموعات الالتقاط والمؤشرات المتقدمة (Lookarounds) نظم التعبيرات الفرعية بكفاءة: - **مجموعات الالتقاط `(...)`:** تعزل أجزاء النص المستخرجة للوصول إليها برمجياً. - **المجموعات غير الملتقطة `(?:...)`:** تجمع الرموز لتطبيق محددات التكرار دون استهلاك موارد الذاكرة في حفظها. - **التحقق الاستشرافي الإيجابي `(?=...)`:** يتأكد من وجود نمط لاحق دون تضمينه في المطابقة النهائية. - **التحقق الاستشرافي السلبي `(?!...)`:** يتأكد من عدم وجود نمط محدد تالياً (مثالي لحظر الكلمات والامتدادات). ### الخطوة 5: ضبط أعلام المحرك (Regex Flags) تحكم في سلوك البحث عبر الأعلام المتاحة: - **العام (`g`):** يبحث عن كافة المطابقات في النص بدلاً من التوقف عند أول مطابقة. - **تجاهل حالة الأحرف (`i`):** يعامل الحروف الإنجليزية الكبيرة والصغيرة بالتساوي. - **متعدد الأسطر (`m`):** يجعل علامتي `^` و `$` تطابقان بداية ونهاية كل سطر فيزيائي (`\n`). - **مطابقة النقطة الشاملة (`s`):** يسمح للنقطة `.` بمطابقة محارف السطر الجديد لنقل كتل النصوص المتعددة. ### الخطوة 6: اختبار الحالات الشاذة وتصدير الكود البرمجي جرّب نصوصاً تحتوي على مسافات زائدة، أو رموزاً غير متوقعة، أو نصوصاً خبيثة. وبمجرد التأكد من صلابة النمط، انسخه مباشرة واستخدمه في شيفرتك البرمجية. --- ## 4. التحليل المقارن الموسع: استوديو Regex المرئي في مواجهة الأدوات الطرفية والسحابية يوضح الجدول التالي الفروق الجوهرية بين استخدام استوديو توليد Regex المرئي، وأدوات سطر الأوامر، والخدمات السحابية، والبرمجة اليدوية داخل بيئات التطوير: | المعيار الهندسي والتشغيلي | استوديو Regex المرئي | أدوات سطر الأوامر (grep/ripgrep/sed) | منصات فحص Regex السحابية | البرمجة اليدوية داخل المحرر | | :--- | :--- | :--- | :--- | :--- | | **سرعة دورة التغذية الراجعة** | **فورية مع كل نقرة** (تجميع متزامن) | تنفيذ دفعي (كتابة أمر لكل تجربة) | تفاعلية (تتطلب اتصالاً بالشبكة) | متأخرة (تتطلب تشغيل الاختبارات) | | **فحص مجموعات الالتقاط** | لوحة مرئية بألوان مستقلة لكل مجموعة | تتطلب أوامر إضافية أو معالجة بـ AWK | جداول مجموعات تفاعلية | فحص عبر مصحح الأخطاء أو الطباعة | | **تمييز المطابقات وتلوينها** | تلوين فوري على مستوى الواجهة | ألوان الرموز الطرفية ANSI | تلوين عبر المتصفح | تمييز أساسي لصياغة الكود فقط | | **القوالب التوجيهية المدمجة** | قوالب جاهزة مع دليل المحارف السريع | تتطلب مراجعة أدلة man الخارجية | تختلف حسب الموقع | الرجوع لوثائق لغة البرمجة | | **مخاطر التراجع الكارثي (ReDoS)**| معزولة داخل بيئة المتصفح الآمنة | قد تجمد سطر الأوامر بالكامل | حدود زمنية للخوادم السحابية | قد تجمد خادم الإنتاج الفعلي | | **الخصوصية وسرية البيانات** | **محلية 100%** (دون أي اتصال خارجي) | محلية بالكامل على الجهاز | تُرسل النصوص لخوادم خارجية | محلية بالكامل على الجهاز | | **تصدير الأكواد لمختلف اللغات** | جاهز لـ JS و Python و PHP و Go | صياغة سطر أوامر فقط | نسخ يدوي للنمط المجرد | خاصة باللغة الحالية فقط | | **استهلاك الذاكرة والموارد** | خفيف جداً (~15 ميغابايت لتبويب المتصفح) | استهلاك ضئيل جداً (~5 ميغابايت) | مرتفع (بنية تحتية سحابية) | جزء من بيئة التطوير (~500MB–2GB) | --- ## 5. مصفوفة المواصفات الفنية ودليل محارف ورموز Regex الأساسية يقدم الجدول التالي مرجعاً شاملاً للمحارف الخاصة في التعبيرات النمطية المعتمدة في محركات ECMAScript و PCRE: | المحرف / الرمز البرمجي | الفئة الوظيفية | مثال تطبيقي | الدلالة البرمجية وسلوك المطابقة | | :--- | :--- | :--- | :--- | | **`^` (علامة الإقحام)** | تثبيت حدودي | `^Error` | تطابق موضع بداية النص (أو بداية كل سطر مع علم `m`). تأكيد ذو عرض صفري. | | **`$` (علامة الدولار)** | تثبيت حدودي | `\.json$` | تطابق موضع نهاية النص (أو نهاية كل سطر مع علم `m`). تأكيد ذو عرض صفري. | | **`\b` (حدود الكلمات)** | تثبيت حدودي | `\bcat\b` | تطابق الفاصل بين محرف كلمة ومحرف غير كلمة دون استهلاك أي محرف. | | **`.` (النقطة)** | محرف عام | `a.c` | تطابق أي محرف مفرد باستثناء السطر الجديد، ما لم يكن علم `s` مفعلاً. | | **`\d` / `\D`** | فئات المحارف | `\d{3}-\d{4}` | `\d` تطابق أي رقم عشري `[0-9]`؛ و `\D` تطابق أي محرف غير رقمي. | | **`\w` / `\W`** | فئات المحارف | `\w+` | `\w` تطابق حروف الكلمات والأرقام والشرطة السفلية؛ و `\W` تطابق غير ذلك. | | **`\s` / `\S`** | فئات المحارف | `\s*` | `\s` تطابق المسافات البيضاء والجدولة والأسطر الجديدة؛ و `\S` تطابق غيرها. | | **`[...]`** | مجموعة محارف | `[aeiou]` | تطابق أي محرف مفرد يقع ضمن الأحرف المحصورة بين القوسين. | | **`[^...]`** | مجموعة منفية | `[^0-9]` | تطابق أي محرف مفرد *لا* يقع ضمن الأحرف المحصورة بين القوسين. | | **`*` (النجمة)** | محدد تكرار | `ab*c` | تطابق المحرف السابق **صفر أو أكثر** من المرات. جشعة افتراضياً. | | **`+` (علامة الجمع)** | محدد تكرار | `ab+c` | تطابق المحرف السابق **مرة واحدة أو أكثر**. جشعة افتراضياً. | | **`?` (علامة الاستفهام)**| محدد تكرار / تعديل | `colou?r` | تطابق المحرف السابق **صفر أو مرة واحدة**، أو تحول المحدد قبله لكسول (`.*?`). | | **`{n,m}`** | نطاق تكرار | `[0-9]{4,6}` | تطابق التكرار بين `n` و `m` مرة. وتطابق `{n}` التكرار بدقة `n` مرة. | | **`\|` (الخط العمودي)**| التبديل والاختيار | `cat\|dog` | عملية "أو" المنطقية؛ تطابق النمط الموجود على اليسار أو على اليمين. | | **`(...)`** | مجموعة التقاط | `(\d{3})-(\d{4})` | تلتقط النص المطابق داخل مجموعة مرقمة (`$1`, `$2`) لاستخراجها برمجياً. | | **`(?:...)`** | مجموعة غير ملتقطة | `(?:https?\|ftp)` | تجمع الرموز لتطبيق التكرار دون استهلاك موارد لتخزين المجموعات. | | **`(?=...)`** | استشراف إيجابي | `\d+(?=px)` | تتحقق من أن الرقم متبوع بـ `px` دون تضمين كلمة `px` في المطابقة. | | **`(?<=...)`** | استرجاع إيجابي | `(?<=\$)\d+` | تتحقق من أن الرقم مسبوق بـ `$` دون تضمين علامة `$` في المطابقة. | --- ## 6. القدرات المعمارية المتقدمة ومزايا الأمان الشاملة يشتمل استوديو Regex على ميزات هندسية صُممت خصيصاً لتسريع التطوير وتفادي الأخطاء الشائعة: - **الحماية من التراجع الكارثي (ReDoS Defense):** عزل عمليات التقييم بحدود استجابة لحظية لمنع المتصفح من الدخول في حلقات لانهائية وتنبيه المطور عند وجود محددات مبهمة. - **الترميز اللوني التفاعلي للمجموعات:** إبراز المطابقات العامة ومجموعاتها الفرعية بألوان متباينة تسهل قراءة واستخراج البيانات المعقدة. - **دعم المجموعات المسماة (Named Groups):** دعم كامل لصياغة ECMAScript للمجموعات المسماة (`(?\d{4})-(?\d{2})`) وعرضها في جداول مفصلة. - **التوجيه البصري لرموز الهروب:** توضيح الرموز التي تتطلب شرطة مائلة عكسية (مثل `\.` و `\/` و `\[`) لتفادي انكسار النصوص عند نقلها للغات البرمجة. - **شريط تبديل الأعلام التفاعلي:** أزرار مباشرة لتفعيل وتعطيل أعلام البحث (`g`, `i`, `m`, `s`) مع تحديث فوري للمطابقات في نفس اللحظة. --- ## 7. سيناريوهات واقعية وشخصيات المطورين وفرق العمل ### الشخصية الأولى: مطورو الأنظمة الخلفية ومهندسو واجهات البرمجة (APIs) يقوم مطورو Node.js و Django و Go ببناء قواعد تدقيق مدخلات المستخدمين للتحقق من سلامة معرّفات UUID، وعناوين البريد، وأرقام الهواتف لمنع إدخال بيانات مشوهة لقواعد البيانات. ### الشخصية الثانية: محللو البيانات ومهندسو خطوط معالجة النصوص (ETL) يعمل المحللون على استخراج معلومات منظمة من سجلات الخوادم الضخمة كعناوين IP ورموز استجابة HTTP ومسارات الملفات المطلوبة، وتساعدهم الأداة على ضبط أنماط الاستخراج بسرعة. ### الشخصية الثالثة: خبراء الأمن السيبراني (SecOps) يستخدم مسؤولو أمن المعلومات الأداة لصياغة قواعد جدران حماية تطبيقات الويب (WAF) لكشف محاولات حقن SQL وهجمات Cross-Site Scripting ومحاولات اختراق مسارات الملفات (`../`). ### الشخصية الرابعة: مطورو الواجهات الأمامية (Frontend Developers) يقوم مطورو React و Vue بصياغة أنماط تدقيق النماذج وتنسيق حقول الإدخال لتوفير تغذية راجعة فورية للمستخدمين قبل إرسال النماذج إلى الخادم. --- ## 8. المشكلات البرمجية الشائعة والأنماط المعيبة وطرق معالجتها ### 1. التراجع الكارثي بسبب تداخل محددات التكرار (Catastrophic Backtracking) **المشكلة:** تجمد صفحة الويب أو توقف خادم Node.js واستهلاك 100% من المعالج عند إدخال نصوص طويلة غير مطابقة. **السبب:** تداخل محددات التكرار المبهمة مثل `(a+)+$`، حيث يجرب المحرك ملايين المسارات التراجعية الفاشلة أفقياً ورأسياً. **الحل:** تجنب التكرار المتداخل، واجعل المجموعات مانعة للبس، أو استخدم فئات محارف صريحة مثل `[a-zA-Z]+$`. ### 2. غياب علامات التثبيت الحدودية وتسريب المدخلات الخبيثة **المشكلة:** قبول مدخلات تحتوي على نصوص خبيثة مثل `user@domain.com