Regular Expression (تعبير نمطي)
آخر تحديث: 2026-10-09
Regular Expression (تعبير نمطي)
Regular Expression نوع BSON لمطابقة الأنماط في الاستعلامات، يكافئ `{ field: /pattern/ }`. يدعم صيغة PCRE والأعلام (i تجاهل حالة الأحرف، m متعدد الأسطر، s شمول النقطة، x موسع). انتبه إلى أن الأنماط غير المرساة لا يمكنها استخدام الفهارس وتفرض فحص المجموعة — استخدمها بحذر على المجموعات الكبيرة.
| الفئة | أنواع BSON |
|---|---|
| إصدار MongoDB | 1.0+ |
| لغة المثال | mongosh (الطرفية) |
📝 الصيغة
{ field: /^prefix/ }
{ field: /pattern/i }
new RegExp("pattern", "i")
القيمة المرجعة:قيمة التعبير النمطي نفسها؛ والاستعلامات تُرجع المستندات المطابقة
▶ مثال
نفّذ الأوامر التالية في mongosh المحلي لديك (يتطلب تشغيل mongod):
// تعبير نمطي: استعلامات الأنماط
use shop
db.users.find({ name: /^alice/i })
db.products.find({ sku: { $regex: 'AB-\\d{4}' } })
المخرجات:
// مستخدمون تبدأ أسماؤهم بـ alice (دون حساسية لحالة الأحرف) ومنتجات بمعرّف sku مثل AB-1234
📌 ملاحظات
- الأنماط المرساة فقط (/^.../) يمكنها استخدام الفهارس
- الرموز الحرفية /pattern/ وسلاسل $regex متكافئتان
- يجب مضاعفة الخطوط المائلة العكسية في السلاسل (\\d)
🏷️ وسوم ذات صلة
💡 حالات ذات صلة
مزيد من الحالات العملية قريبًا.
📚 دروس ذات صلة
❓ الأسئلة الشائعة
Qهل يمكن لاستعلامات التعبير النمطي استخدام فهرس؟
Aالأنماط المرساة فقط مثل /^abc/ يمكنها استخدام فهرس؛ وغيرها يفحص المجموعة.
Qهل $regex مثل /pattern/؟
Aنعم — كلاهما يبني استعلام تعبير نمطي؛ $regex يأخذ سلسلة فقط.
Qاستعلامات التعبير النمطي بطيئة — ماذا أفعل؟
Aانتقل إلى مطابقة بادئة مرساة مع فهرس، أو استخدم فهرسًا نصيًا للبحث النصي الكامل.