ما هو التعبير النمطي؟

التعبير النمطي (regex) هو سلسلة من الأحرف تُعرِّف نمط بحث. طُوِّرت التعبيرات النمطية في الأصل لنظرية اللغات الرسمية، وتُستخدم الآن في كل لغات البرمجة وأدوات معالجة النصوص تقريبًا لمطابقة strings والبحث فيها والتعامل معها. نمط مثل [a-z]+@[a-z]+\.com يصف بنية عنوان بريد إلكتروني بسيط — أحرف، يليها رمز @، ثم أحرف أخرى، ونقطة، ثم string الحرفية "com."

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

وصف الأداة

تُولِّد هذه الأداة strings عشوائية تطابق أي تعبير نمطي تُدخله. أدخل نمط regex — أو اختر من الأنماط الجاهزة المدمجة — وأنتج فورًا ما يصل إلى 1,000 قيمة مطابقة. تدعم الأداة جميع صياغات regex القياسية بما فيها فئات الأحرف، والمحددات الكمية، والمجموعات، والتبديل، والمراجع الخلفية. يمكن استخدام الناتج مباشرةً كبيانات اختبار، أو بيانات أولية، أو مدخلات لسكريبتات التحقق.

الميزات

  • أنماط جاهزة مدمجة للصيغ الشائعة: البريد الإلكتروني، IPv4، UUID، رقم الهاتف الأمريكي، التاريخ، لون HEX، لوحة الترخيص، وعنوان MAC
  • إدخال regex مخصص يقبل صياغة التعبيرات النمطية الكاملة في JavaScript
  • عدد قابل للضبط من 1 إلى 1,000 قيمة مولَّدة في كل تشغيل
  • التحكم في الحد الأقصى للتكرار للحد من عدد مرات توسع المحددات الكمية غير المقيدة (+، *، {n,})، مما يمنع إنتاج strings طويلة بشكل مفرط
  • وضع القيم الفريدة فقط الذي يُزيل التكرارات من الناتج ويُنبِّه إذا كانت إنتروبيا النمط منخفضة جدًا لإنتاج عدد كافٍ من القيم المتمايزة

حالات الاستخدام

  • اختبار البرمجيات: توليد مئات من عناوين البريد الإلكتروني، أو UUIDs، أو عناوين IP ذات المظهر الواقعي لاستخدامها كبيانات اختبار أو بيانات أولية لمجموعات الاختبار الآلي دون الكشف عن معلومات المستخدمين الحقيقية.
  • ملء قواعد البيانات: ملء قواعد بيانات التطوير أو الاختبار بسرعة ببيانات وهمية واقعية تتوافق مع قيود الأعمدة وقواعد التحقق.
  • تعلم التعبيرات النمطية: تجربة صياغة regex بكتابة نمط ورؤية ما يمكنه إنتاجه من strings فورًا، مما يُسهِّل فهم المحددات الكمية وفئات الأحرف والتجميع.

شرح الخيارات

الخيار الوصف
النمط الجاهز اختر نمطًا مدمجًا لصيغ البيانات الشائعة، أو اختر "مخصص" لكتابة regex الخاص بك. يؤدي اختيار نمط جاهز إلى ملء حقل نمط regex تلقائيًا.
نمط Regex التعبير النمطي المستخدم لتوليد البيانات. يدعم فئات الأحرف ([a-z])، والمحددات الكمية ({3,8}، +، *)، والمجموعات والتبديل ((com|net|org))، والرموز الخاصة (\d، \w).
العدد عدد strings المراد توليدها، بين 1 و1,000.
الحد الأقصى للتكرار يُحدِّد توسع المحددات الكمية غير المقيدة. على سبيل المثال، عند ضبط الحد الأقصى للتكرار على 10، سيُنتج النمط [a-z]+ strings بحد أقصى 10 أحرف. النطاق: 1–100.
القيم الفريدة فقط عند التفعيل، يضمن عدم ظهور strings مكررة في الناتج. إذا تعذَّر على النمط إنتاج عدد كافٍ من القيم الفريدة، تظهر رسالة تحذير مع العدد الفعلي الذي تم توليده.

نصائح

  • ابدأ بنمط جاهز وعدِّله لتتعلم كيف تتحول أنماط regex إلى بيانات مولَّدة.
  • إذا كنت بحاجة إلى ناتج بطول ثابت، استخدم محددات كمية دقيقة مثل {8} بدلًا من النطاقات مثل {5,10}.
  • اخفض قيمة الحد الأقصى للتكرار عند استخدام + أو * للإبقاء على strings مولَّدة قصيرة وسهلة القراءة.
  • فعِّل وضع القيم الفريدة عند توليد معرِّفات أو مفاتيح يجب ألا تتكرر، لكن استخدم نمطًا يحتوي على تنوع كافٍ لتجنب الوصول إلى سقف التفرد.

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

هل يمكنني استخدام lookaheads أو lookbehinds؟ يعتمد المولِّد على مكتبة randexp.js التي تدعم معظم ميزات regex في JavaScript. لا يُدعم استخدام lookaheads وlookbehinds في التوليد لأنها لا تُعرِّف محتوى الأحرف.

لماذا حصلت على نتائج أقل مما طلبت؟ عند تفعيل "القيم الفريدة فقط"، قد لا يمتلك النمط ما يكفي من التباديل الممكنة لإنتاج العدد المطلوب من strings المتمايزة. حاول توسيع فئات الأحرف أو زيادة نطاقات المحددات الكمية.

هل الناتج عشوائي حقًا؟ الناتج شبه عشوائي. يُنتج كل تشغيل نتائج مختلفة، لكن العشوائية ليست آمنة من الناحية التشفيرية. لا تستخدم هذه الأداة لتوليد كلمات مرور أو tokens أمنية.