$regexFind (أول تطابق تعبير نمطي)
آخر تحديث: 2026-10-09
$regexFind (أول تطابق تعبير نمطي)
ينفذ $regexFind بحثًا بتعبير نمطي متوافق مع بيرل على سلسلة نصية ويُرجع أول تطابق كمستند (بحقول match و idx و captures)، أو null عندما لا يتطابق شيء. يأخذ regex سلسلة النمط مباشرة؛ ويقبل options علامات مثل i (غير حساس لحالة الأحرف) و m (متعدد الأسطر). على عكس $regexMatch يُرجع أيضًا مجموعات الالتقاط، لذا يناسب مهام الاستخراج والمجموعات الفرعية.
| الفئة | النص |
|---|---|
| إصدار MongoDB | 1.0+ |
| لغة المثال | mongosh (الطرفية) |
📝 الصيغة
{ $regexFind: { input: <string-expression>, regex: <pattern>, options: <options> } }
⚙️ المعلمات
| input | مطلوب؛ النص المراد البحث فيه. |
|---|---|
| regex | مطلوب؛ نص نمط تعبير نمطي متوافق مع Perl. |
| options | أعلام اختيارية مثل i وm وx. |
القيمة المرجعة:مستند مطابقة { match, idx, captures }؛ null عند عدم وجود تطابق أو عندما يكون الإدخال null.
▶ مثال
نفّذ الأوامر التالية في mongosh المحلي لديك (يتطلب تشغيل mongod):
// $regexFind: استخراج هاتف من 11 رقمًا من جهات الاتصال
db.users.aggregate([
{ $project: { phone: { $regexFind: { input: '$contact', regex: '[0-9]{11}', options: 'i' } } } }
])
المخرجات:
{ "_id": 1, "phone": { "match": "13800138000", "idx": 5, "captures": [] } }
{ "_id": 2, "phone": null }
📌 ملاحظات
- عدم التطابق يُرجع null لا مستندًا فارغًا
- يحتوي captures مجموعات الالتقاط؛ ويكون فارغًا عند غيابها
- يدعم options: i (تجاهل حالة الأحرف) و m (متعدد الأسطر) و x (تجاهل الفراغات)
🏷️ وسوم ذات صلة
💡 حالات ذات صلة
مزيد من الحالات العملية قريبًا.
📚 دروس ذات صلة
❓ الأسئلة الشائعة
Qهل يعني null عدم وجود تطابق؟
Aنعم — عدم التطابق يُرجع null؛ احمِه بـ $ifNull.
Qكيف أحصل على مجموعات الالتقاط؟
Aيسرد حقل captures محتويات المجموعات بالترتيب.
Qهل يمكن لـ options دمج العلامات؟
Aنعم — مثل 'im' التي تفعّل تجاهل حالة الأحرف والأسطر المتعددة معًا.