هروب محارف regex الوصفية
الصق file.txt (v1.0+) لتحصل على file\.txt \(v1\.0\+\): تُضاف شرطة مائلة عكسية قبل كل نقطة وقوس وعلامة زائد وغيرها من العوامل، فيطابق النمط نصك حرفًا بحرف. ويستعيد الخيار العكسي النص الأصلي. مجاني في متصفحك.
- مجاني
- يعمل في متصفحك
- دون تسجيل
- بياناتك لا تغادر جهازك
شغّل الأداة مجانًا
مثال محلول
- النص
- file.txt (v1.0+)
- وضع الحساب
- Escape
- النتيجة
- file\.txt \(v1\.0\+\)
- الطول
- 21
- طول المُدخَل
- 16
- عدد المُهرَّب
- 5
تعامل التعبيرات النمطية النقاط والنجوم والأقواس كعوامل لا كمحارف عادية. إذا لصقتم اسم ملف مثل report.v2.pdf في نمط دون هروب، تصبح النقاط فجأة بمعنى «أي محرف»، فيتسع التطابق بصمت أبعد من الاسم المقصود. أكواد المنتجات وأجزاء البريد المحلية وglobs الصدفة المنسوخة إلى مربعات البحث والمرشحات التي يكتبها المستخدم تحمل الخطر نفسه. تمرّ هذه القدرة على كل محرف، وتضع شرطة مائلة عكسية قبل كل محرف وصفي بأسلوب JavaScript وPCRE، وتعيد مقطعًا يمكن إدراجه في نمط أوسع مع اليقين بأنه سيطابق السلسلة الأصلية محرفًا بمحرف. المسار العكسي يلغي الهروب من نمط حرفي خالص لاستعادة النص الصريح خلف تسلسلات مثل \.
أي المحارف تحتاج إلى هروب ولماذا
يقرأ محرك التعبير النمطي بعض الرموز كبنية نحوية لا كبيانات. المجموعة الكلاسيكية التي يجب تهريبها لتطابق حرفي في منشئات RegExp في JavaScript ومحركات نمط PCRE تشمل النقطة والنجمة والجمع وعلامة الاستفهام والعلامة الحادة والدولار والأقواس المعقوفة والمستديرة والشريط العمودي والأقواس المربعة والشرطة المائلة العكسية نفسها. بلا شرطة سابقة تطابق النقطة أي محرف، وتكرر النجمة الذرة السابقة، وتفتح الأقواس مجموعة التقاط، وترسّخ العلامة الحادة أو الدولار موضع التطابق.
عندما ترغبون فقط في أن يظهر رمز المنتج أو مسار الملف أو رسالة الخطأ كما كُتب بالضبط، يجب أن تعود كل تلك الرموز بيانات. تضع هذه القدرة شرطة مائلة عكسية واحدة أمام كل منها في مسار الهروب: يصبح file.txt إلى file\.txt، ووسم الإصدار (v1.0+) إلى \(v1\.0\+\). الحروف والأرقام والمسافات ومعظم علامات الترقيم خارج تلك المجموعة تمر دون تغيير.
الذهاب والعودة عبر الهروب ثم إلغائه يستعيد النص الأصلي متى أُنتجت القيمة الوسيطة بهذه القواعد، فيصلح الأداة لتوليد التجهيزات آليًا وللتصحيح السريع في المتصفح.
أين يظهر هروب regex الحرفي في العمل الحقيقي
تلف واجهات البحث والتصفية غالبًا إدخال المستخدم في نمط ديناميكي لإبراز التطابقات الجزئية في جدول؛ الهروب أولًا يمنع قوسًا واحدًا من إثارة خطأ نحوي أو فتح مجموعة غير مقصودة. أدوات فرز السجلات تحول سطر خطأ منسوخًا إلى نمط بحث لا يجب أن يعامل نقاط أسماء المضيفين أو أرقام الإصدار كبدائل عامة. يحوّل مراجعو الأمن سلسلة مشبوهة إلى مقطع حرفي قبل دمجها في تعبير قائمة سماح أوسع حتى لا توسّع المحارف الوصفية التطابق.
تخزّن خطوط التوطين والمحتوى أحيانًا مقاطع مهربة مسبقًا؛ إلغاء الهروب يستعيد الرمز المقروء للعرض دون إعادة بناء نحوية نشطة. تستخدم دورات البرمجة مهربًا حيًا لتبيان لماذا «أي محرف» و«محرف النقطة» ليسا الفكرة نفسها في درس regex. إن احتجتم تشغيل تطابقات واستبدالات، أو شرح نمط نثرًا، أو توليد نمط من وصف، أو ترميز URL بالنسبة المئوية، فتلك نوايا بحث وصفحات منفصلة — هذه الصفحة للهروب وإلغائه الحرفي للمحارف الوصفية فقط.
حالات الاستخدام
مرشحات مستخدم آمنة في واجهات البحث
اهربوا ما يكتبه المستخدم قبل لفه في تعبير نمطي ديناميكي حتى لا تتحول النقاط والأقواس إلى عوامل أو أخطاء نحوية.
استعادة النص الصريح من التجهيزات
ألغوا هروب نمط حرفي خالص محفوظ في ملف إعداد لعرض كود المنتج أو المسار الأصلي في أدوات الإدارة.
الأسئلة الشائعة
أي المحارف الوصفية تهريبها هذه الأداة؟
المجموعة الحرفية بأسلوب JavaScript / PCRE: . * + ? ^ $ { } ( ) | [ ] والشرطة المائلة العكسية. يُسبق كل منها ب \ ليطابق المقطع المحارف الأصلية تمامًا.
ماذا يحدث عند إدخال غير صالح؟
غياب text، وmode غير معروف، والسلاسل الطويلة جدًا، والشرطة النهائية، والهروب غير الوصفي مثل \d، والمحارف الوصفية العارية في مسار unescape تُرفض كلها. فشل التحقق لا يُحاسب.
هل تشغّل أو تختبر تعبيرًا نمطيًا؟
لا. تقتصر على الهروب وإلغائه للتطابق الحرفي. استخدموا مختبر regex مخصصًا إذا احتجتم match أو replace أو التقاط المجموعات.
لماذا تطابق النقطة غير المهرَّبة أكثر مما كتبت؟
لأن النقطة في التعبير النمطي تعني أي حرف واحد، فيطابق report.v2.pdf أسماء فيها حروف أخرى في تلك المواضع. وبعد التهريب تصبح كل نقطة نقطة حقيقية، فتبقى المطابقة على النص الذي قصدته تمامًا.
هل يمكن إعادة نمط مهرَّب إلى نص عادي؟
نعم بالخيار العكسي، بشرط أن يكون النمط حرفيًا: يجب أن يلي كل شرطة مائلة عكسية محرف وصفي أو شرطة أخرى. أما \d و\n أو شرطة منفردة في النهاية فتُرفض بدل تخمينها.
أدوات ذات صلة
للمطوّرين — الوصول عبر API
كل ما في هذه الصفحة متاح برمجيًا. هذا القسم موجّه للفرق التقنية التي تريد ربط الأداة بأنظمتها الخاصة؛ بقية المستخدمين يمكنهم استخدام الأداة أعلاه مباشرة دون الحاجة لقراءة ما يلي.
الـEndpoint
صادِق على طلبك بترويسة Bearer، وأرسل طلب POST واحدًا لتدخل مهمتك قائمة التنفيذ فورًا؛ ثم تستلم النتيجة عبر webhook أو رابط موقّع.
استدعِ الخدمة من بيئتك
curl -X POST https://api.kit.forhosting.com/enc/regex-escape \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"file.txt (v1.0)"}'const res = await fetch("https://api.kit.forhosting.com/enc/regex-escape", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "file.txt (v1.0)"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/enc/regex-escape",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "file.txt (v1.0)"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/enc/regex-escape", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"file.txt (v1.0)"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"file.txt (v1.0)"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/enc/regex-escape", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)مثال على الطلب
{
"text": "file.txt (v1.0)"
}مثال على الاستجابة
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "enc.regex_escape",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}الواجهة غير متزامنة: تستلم task_id فور الإرسال، ويمكنك الاستعلام عن الحالة بمعدل طلب واحد في الثانية.
الأسعار
السعر معلن كما تراه: لا tokens ولا نظام نقاط؛ وإن فشلت المهمة فلن تُحاسَب عليها.
الأخطاء
| HTTP | الرمز | المعنى |
|---|---|---|
401 | unauthorized | مفتاح الوصول مفقود أو غير صالح؛ تحقق من ترويسة Bearer في طلبك. |
402 | insufficient_balance | رصيدك لا يكفي لتنفيذ هذه المهمة؛ أعد شحن الرصيد ثم أعد المحاولة. |
404 | unknown_type | نوع المهمة المطلوب غير موجود في الكتالوج — راجع الاسم المرسل في الطلب. |
429 | rate_limited | تجاوزت الحد المسموح من الطلبات؛ انتظر قليلًا ثم أعد المحاولة. |
ملاحظات تقنية
و\(. الذيول التالفة والهروب غير الوصفي والعوامل العارية في مسار إلغاء الهروب تفشل فورًا ب invalid_input، فلا تصل التجهيزات السيئة إلى CI. أداة المتصفح المجانية وواجهة API المدفوعة تشتركان في نواة حتمية بالسعر المنشور $0.002 لكل عنصر ناجح.
ما ترسلونه وما تستلمونه
أرسلوا حقل نص إلزاميًا باسم text وحقل mode اختياريًا بقيمة escape أو unescape. يمرّ escape على الإدخال ويحسب كم محرفًا وصفيًا سُبق ويعيد result كمقطع النمط الآمن الأساسي. غياب text وقيم mode غير المدعومة والسلاسل الأطول من الحد الموثّق تفشل أيضًا دون استهلاك الرصيد المدفوع مسبقًا. استخدموا نموذج المتصفح المجاني للتحقق السريع، ثم العقد نفسه من السكربتات عند الحاجة لتجهيزات جماعية أو تأكيدات CI. عند حذف mode يكون escape هو الافتراضي فيبقى حمولة واحدة مفيدة. تُقبل الأسماء البديلة encode وdecode للفرق المرتبطة مسبقًا بأدوات ترميز أخرى في الكتالوج. يعكس unescape الأنماط الحرفية الخالصة فقط: يجب أن تتبع الشرطة المائلة العكسية محرفًا وصفيًا أو شرطة أخرى؛ الشرطة الوحيدة في النهاية، أو هروب مثل \d أو \n خارج المجموعة الحرفية، أو محرف وصفي عارٍ لم يُهرَّب، تفشل كلها ب invalid_input مع رسالة إنجليزية تذكر الفهرس. تعيد الاستجابات الناجحة mode والنص الأصلي، وتشمل length وinput_length، وتبلّغ escaped_count، وتسرد المحارف الوصفية الفريدة مرتبة، وتلحق تسمية قصيرة لمجموعة قواعد JavaScript وPCRE. تسعير استدعاءات API الناجحة هو القاعدة المنشورة $0.002 لكل عنصر.
أين يظهر هروب regex الحرفي في العمل الحقيقي
ولأن هذه القدرة محرك parse خالص، يبقى تسعير API عند القاعدة المنشورة $0.002 لكل عنصر ناجح، والفشل في التحقق لا يستهلك الرصيد.
حالات التكامل
أنماط golden مستقرة في CI
حوّلوا أسماء الملفات وسلاسل الأخطاء إلى مقاطع آمنة حرفيًا يمكن للاختبارات تضمينها دون صيانة يدوية للشرطات.
أسئلة تقنية
هل يمكن التحويل في الاتجاهين؟
نعم. mode=escape (الافتراضي؛ يقبل أيضًا encode) يحوّل النص الصريح إلى نمط آمن حرفيًا؛ mode=unescape (يقبل أيضًا decode) يعكس نمطًا حرفيًا خالصًا إلى نص صريح.
كم التكلفة؟
أداة المتصفح مجانية وتعمل محليًا. طلبات API تستخدم رصيد KIT المدفوع مسبقًا ب $0.002 لكل عنصر ناجح؛ الإدخال غير الصالح لا يُحاسب.