استخراج مجموعات الالتقاط المسماة من نمط regex
الصق نمطًا مثل (?<year>\d{4})-(?<month>\d{2})-(?<day>\d{2}) لتحصل على مجموعاته المسماة بالترتيب: year ثم month ثم day. يُفحص النمط دون تشغيله، فيصبح جاهزًا للتوثيق أو لقوالب الاستبدال. مجاني في متصفحك.
- مجاني
- يعمل في متصفحك
- دون تسجيل
- بياناتك لا تغادر جهازك
شغّل الأداة مجانًا
مثال محلول
- النمط
- (?<year>\d{4})-(?<month>\d{2})-(?<day>\d{2})
- المجموعات المسماة
- year, month, day
- الكمية
- 3
<name>...) على المجموعات المرقّمة وحدها. تقبل هذه القدرة جسم regex واحدًا وفق ECMAScript، وتتحقّق من أن النمط يُترجم، وتعيد القائمة المرتبة لمعرّفات مجموعات الالتقاط المسماة التي يصرّح بها.
ما مجموعات الالتقاط المسماة ولماذا يساعد سردها
في التعبيرات النمطية لـ ECMAScript تُكتب مجموعة الالتقاط المسماة كقوس فتح وعلامة استفهام وعلامة أقل من ومعرّف وعلامة أكبر من ثم النمط الفرعي وقوس الإغلاق: مثلًا open-paren question-mark less-than year greater-than backslash-d open-brace four close-brace close-paren. عند نجاح المطابقة يعرض المحرك تلك الأسماء على كائن groups فيقرأ المستدعي match.groups.year بدل match[1]. سرد الأسماء دون تشغيل مطابقة مفيد كلما وثّقت نمطًا أو ولّدت أنواع TypeScript لمدقّق أو بنيت واجهة تقدّم رموز استبدال مثل dollar-less-than name greater-than.
لا ينفّذ هذا المسار التعبير على نص عيّنة؛ بل يتحقّق من النمط ويستخرج الأسماء بترتيب التعريف من اليسار إلى اليمين. تُتجاهل مجموعات الالتقاط بلا اسم والمجموعات غير الملتقطة في قائمة الأسماء. لا تُعامل تأكيدات lookbehind التي تبدأ بـ question-mark less-than equals أو question-mark less-than exclamation كمجموعات مسماة.
لا تنتج فئات المحارف والأقواس المهرّبة إيجابيات كاذبة، فلا يظهر في النتيجة نص حرفي يحمل أحرف فتح مجموعة مسماة داخل أقواس مربعة.
أين يثبت استخراج المجموعات المسماة قيمته
مواقع الوثائق وأدلة الأسلوب التي تنشر مكتبات regex يمكنها توليد جدول أسماء المجموعات لكل نمط تلقائيًا دون صيانة يدوية لقائمة موازية تنحرف. بنّاؤو النماذج ومحلّلو السجلات الذين يقبلون أنماط المستخدم يمكنهم رفض القوالب التي تشير إلى رموز dollar-less-than name greater-than غير موجودة في النمط، فيقلّون مفاجآت وقت التشغيل. صفحات المحتوى التي تستهدف استخراج مجموعات الالتقاط المسماة من regex تستفيد من ودجت حيّ يطابق مساره المجاني في المتصفح مسار الأتمتة المدفوع بايتًا بايت على الوحدة النقية نفسها.
فشل التحقق لا يستهلك الرصيد.
حالات الاستخدام
توثيق مكتبات regex تلقائيًا
ولّد جدولًا لمعرّفات مجموعات الالتقاط المسماة لكل نمط في مكتبة مشتركة لتبقى الوثائق متزامنة مع المصدر.
الأسئلة الشائعة
هل تُعامل lookbehind كمجموعات مسماة؟
لا. تُتخطى التأكيدات (? <=...) و(? <!...). تظهر فقط مجموعات الالتقاط (? <name>...) في القائمة.
ماذا يحدث إذا لم يحتوِ النمط على مجموعات مسماة؟
تحصل على قائمة فارغة وعدد يساوي صفرًا، لا على خطأ. لا يُرفض إلا النمط الذي لا يقبله محرك التعابير النمطية نفسه، مثل نمط بصياغة مكسورة.
هل تجرّب الأداة النمط على نص ما؟
لا. تتحقق الأداة فقط من صحة النمط وتقرأ الأسماء من اليسار إلى اليمين بترتيب تعريفها. لا يجري أي بحث عن تطابق، لذلك لا تحتاج إلى نص تجريبي.
هل يمكن أن تحمل مجموعتان الاسم نفسه؟
لا. ترفض المحركات الحالية الأسماء المكررة عند ترجمة النمط، لذلك تنبهك الأداة برسالة واضحة بدل أن تعيد قائمة يتكرر فيها الاسم نفسه مرتين.
هل تُحسب المجموعات غير المسماة أو ما بين الأقواس المربعة؟
لا. تبقى المجموعات المرقمة العادية والمجموعات غير الملتقطة خارج القائمة، ولا تولّد الحروف داخل الأقواس المربعة أو الأقواس المهرّبة اسمًا زائفًا أبدًا، حتى لو بدت كبداية مجموعة.
أدوات ذات صلة
للمطوّرين — الوصول عبر API
كل ما في هذه الصفحة متاح برمجيًا. هذا القسم موجّه للفرق التقنية التي تريد ربط الأداة بأنظمتها الخاصة؛ بقية المستخدمين يمكنهم استخدام الأداة أعلاه مباشرة دون الحاجة لقراءة ما يلي.
الـEndpoint
صادِق على طلبك بترويسة Bearer، وأرسل طلب POST واحدًا لتدخل مهمتك قائمة التنفيذ فورًا؛ ثم تستلم النتيجة عبر webhook أو رابط موقّع.
استدعِ الخدمة من بيئتك
curl -X POST https://api.kit.forhosting.com/dev/regex-named-group-extract \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"pattern":"(?<year>\\d{4})-(?<month>\\d{2})-(?<day>\\d{2})"}'const res = await fetch("https://api.kit.forhosting.com/dev/regex-named-group-extract", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"pattern": "(?<year>\\d{4})-(?<month>\\d{2})-(?<day>\\d{2})"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/dev/regex-named-group-extract",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"pattern": "(?<year>\\d{4})-(?<month>\\d{2})-(?<day>\\d{2})"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/dev/regex-named-group-extract", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"pattern":"(?<year>\\\\d{4})-(?<month>\\\\d{2})-(?<day>\\\\d{2})"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"pattern":"(?<year>\\d{4})-(?<month>\\d{2})-(?<day>\\d{2})"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/dev/regex-named-group-extract", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)مثال على الطلب
{
"pattern": "(?<year>\\d{4})-(?<month>\\d{2})-(?<day>\\d{2})"
}مثال على الاستجابة
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "dev.regex_named_group_extract",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}الواجهة غير متزامنة: تستلم task_id فور الإرسال، ويمكنك الاستعلام عن الحالة بمعدل طلب واحد في الثانية.
الأسعار
السعر معلن كما تراه: لا tokens ولا نظام نقاط؛ وإن فشلت المهمة فلن تُحاسَب عليها.
الأخطاء
| HTTP | الرمز | المعنى |
|---|---|---|
401 | unauthorized | مفتاح الوصول مفقود أو غير صالح؛ تحقق من ترويسة Bearer في طلبك. |
402 | insufficient_balance | رصيدك لا يكفي لتنفيذ هذه المهمة؛ أعد شحن الرصيد ثم أعد المحاولة. |
404 | unknown_type | نوع المهمة المطلوب غير موجود في الكتالوج — راجع الاسم المرسل في الطلب. |
429 | rate_limited | تجاوزت الحد المسموح من الطلبات؛ انتظر قليلًا ثم أعد المحاولة. |
ملاحظات تقنية
تحوّل مجموعات الالتقاط المسماة فهارس المطابقة الغامضة إلى أسماء حقول مقروءة مثل year وmonth وemail_local؛ ولهذا تفضّل مكتبات regex الحديثة ومدقّقات API صيغة (? عندما ترث نمطًا طويلًا أو تولّد وثائقًا أو تربط محلّل نماذج، تحتاج غالبًا قائمة الأسماء التي يعرّفها النمط فعليًا قبل كتابة قوالب الاستبدال أو تعيين المجموعات إلى JSON. تنجح الأنماط بلا مجموعات مسماة بقائمة فارغة بدل الخطأ؛ ولا تفشل بـ invalid_input إلا الصيغة التي يرفضها المحرك. المنطق النقي نفسه يشغّل الأداة المجانية في المتصفح ومسار API، فلا يختلف مولّدو الوثائق ومدقّقو الإنتاج حول الأسماء التي يعرضها النمط.
ما مجموعات الالتقاط المسماة ولماذا يساعد سردها
تفشل الأسماء المكررة عند الترجمة في محركات ECMAScript الحالية وتظهر كـ invalid_input برسالة واضحة.
عقد الإدخال وشكل الاستجابة وسلوك الخطأ
يجب أن تكون القيمة سلسلة غير فارغة بطول لا يتجاوز عشرة آلاف محرف. النمط الفارغ أو المفقود أو النوع غير السلسلة يفشل التحقق قبل الترجمة. أرسل جسم JSON بطريقة POST يحوي حقل سلسلة إلزاميًا واحدًا: pattern، وهو جسم التعبير النمطي بلا شرطات مائلة محيطة. يترجم المعالج النمط بمُنشئ RegExp الأصلي؛ وأي خطأ صيغة أو فئة غير مغلقة أو كمّي خاطئ أو اسم مجموعة التقاط مكرر يصبح invalid_input ولا يُحاسب. عند النجاح يعيد الجسم pattern وnamed_groups كمصفوفة سلاسل بترتيب التعريف وcount كطول المصفوفة وhas_named_groups كعلامة منطقية مريحة. مثال: نمط التاريخ بثلاث مجموعات مسماة لـ year وmonth وday يعطي count ثلاثة وhas_named_groups true. مطابق كلمات بسيط مثل backslash-w plus بلا مجموعات مسماة يعطي named_groups فارغة وcount صفر وhas_named_groups false—وما زال استدعاءً ناجحًا لأن النمط صالح. استخدم الأداة المجانية في المتصفح للفحص السريع؛ واستخدم API عندما تحتاج مسارات CI أو إضافات CMS قائمة ثابتة قابلة للقراءة آليًا لأسماء المجموعات لكل نمط في ملف إعداد.
أين يثبت استخراج المجموعات المسماة قيمته
قوائم مراجعة الأمن تسأل غالبًا أي حقول يلتقطها regex للتحقق؛ وإرجاع قائمة الأسماء من API parse صغيرة أرخص من نصب منقّح regex كامل لكل pull request.
حالات التكامل
التحقق من قوالب الاستبدال
قبل حفظ قاعدة replace تستخدم رموز $<name>، أكّد أن كل اسم موجود في قائمة named_groups للنمط.
فحوصات CI للنماذج والسجلات
أفشل المسار عندما يدّعي regex في الإعداد التقاط email أو order_id دون تعريف مجموعة مسماة مطابقة.
أسئلة تقنية
كيف أستخرج مجموعات الالتقاط المسماة من regex؟
أرسل جسم JSON مع pattern مضبوطًا على جسم regex وفق ECMAScript (بلا شرطات). تعيد API قائمة named_groups بترتيب التعريف مع count وhas_named_groups.
ماذا يحدث إذا كان النمط غير صالح؟
تفشل المهمة بـ invalid_input ورسالة تتضمن خطأ المحرك. الأنماط غير الصالحة لا تُحاسب.
هل يعيد النمط بلا مجموعات مسماة خطأً؟
لا. الأنماط الصالحة ذات المجموعات المرقّمة أو غير الملتقطة فقط تنجح بمصفوفة named_groups فارغة وcount صفر.
كم تكلفة استخراج مجموعات regex المسماة؟
أداة المتصفح مجانية. طلبات API تستخدم رصيد KIT المدفوع مسبقًا بمبلغ $0.002 لكل استدعاء ناجح؛ الإدخال غير الصالح لا يُحاسب.