بحث واستبدال متعدد
استبدل ACME Corp بالاسم Nova Labs وACME بالاسم Nova وعنوان الدعم بعنوان جديد في مرور واحد: 3 أزواج و3 تغييرات بترتيب قائمتك. ضع العبارات الأطول أولًا، حتى 100 زوج، وكل تطابق حرفي. مجاني في متصفحك.
- مجاني
- يعمل في متصفحك
- دون تسجيل
- بياناتك لا تغادر جهازك
شغّل الأداة مجانًا
يحتاج المحررون وفرق التوطين ومسارات الأتمتة غالبًا إلى أكثر من عملية بحث واستبدال واحدة: إعادة تسمية علامة تجارية وحزمة مصطلحات ومجموعة رموز قالب يجب أن تُطبَّق في مرور واحد متسق. يغطي خيار تجاهل حالة الأحرف المسودات المختلطة بحيث يتغيّر Hello وHELLO دون سرد المتغيرات. تفشل مصطلحات البحث الفارغة في أي زوج بمدخل غير صالح حتى لا تشغّل المهام الجماعية عملية صامتة بلا أثر. استخدمها لتنظيف المصطلحات وملء القوالب متعددة الرموز وتجهيز أنظمة المحتوى والاختبارات الحتمية.
معنى البحث والاستبدال المتعدد ومتى يُستخدم
يعني البحث والاستبدال المتعدد المرور على قائمة مرتّبة من مصطلحات البحث وكتابة بديل لكل ظهور غير متداخل لكل مصطلح، ثم تغذية السلسلة المعدَّلة إلى الزوج التالي حتى تنتهي القائمة. المطابقة حرفية: النقاط والأقواس وغيرها من محارف التعبيرات النمطية العادية نص صريح، فتبقى حزم المصطلحات متوقعة لغير المطوّرين وللمسارات التي يجب ألا تُفاجأ بالرموز الخاصة. فضّلوا هذه الحاسبة عندما تكون نية البحث هي البحث والاستبدال المتعدد أو الاستبدالات الجماعية أو تطبيق عدة أزواج استبدال أو إعادة كتابة حزمة مصطلحات أو ملء رموز قالب كثيرة في مرور واحد.
تشمل المصادر النموذجية نصوص التسويق التي تعيد تسمية عائلة منتجات، وماكروهات الدعم التي تحدّث عدة عناوين URL دفعة واحدة، ودلائل أسلوب التوطين التي تستبدل عشرات العبارات الممنوعة، ومقاطع الإعداد حيث تُحلّ عناصر نائبة مثل company وyear وplan معًا. ترتيب الأزواج مقصود: أعيدوا كتابة العبارات الطويلة قبل السلاسل الجزئية القصيرة كي تصبح ACME Corp هي Nova Labs قبل قاعدة لاحقة من ACME إلى Nova، فتتفادون القص الجزئي. تطوي المطابقة الاختيارية غير الحساسة لحالة الأحرف حالة الحروف لكل زوج حتى تلتقط حزمة واحدة المسودات المختلطة.
لا تستخدموا هذا المنتج إن احتجتم مجموعات التقاط أو lookaround أو محرك تعبيرات نمطية متعدد الأسطر كاملًا؛ فتلك نية مختلفة تخدمها أدوات regex. توجد صفحة لزوج واحد لمصطلح بحث واحد؛ وهذه الصفحة لمسار الأزواج المتعددة.
متى تفيد الاستبدالات المتعددة
استدعوا أداة البحث والاستبدال المتعدد المجانية في المتصفح لتنظيف اللصق وتجربة المصطلحات وعروض الصف وضمان جودة المحتوى وإعادة تسمية متعددة الرموز دون تثبيت أداة سطح مكتب أو كتابة مقتطفات split-join متداخلة بكل لغة. مسار آخر يملأ رموز قالب مثل company وproduct وplan code بإدراج كل زوج في طلب واحد، أو يحذف علامات مهجورة بقيم replace فارغة. اقرنوا هذه النقطة بتنظيف المسافات أو محوّلات الحالة عندما تكون الخطوة التالية تنسيقًا أسلوبيًا، لكن أبقوا البحث والاستبدال المتعدد صفحة هبوط مستقلة حتى لا تختلط نية SEO بأدوات الزوج الواحد أو ملاعب regex.
لا تتوقعوا إعادة كتابة واعية لـ HTML تتخطى الوسوم، أو حقول دمج مستندات منظمة، أو حلًا متوازيًا لأطول مطابقة، أو ترتيبًا محليًا يتجاوز ignore-case القياسي؛ فتلك مشكلات منفصلة. ثبّتوا تجهيزات لصفر مطابقات وإعادة كتابة مرتّبة متعددة الأزواج وحزم case-insensitive ورفض البحث الفارغ حتى لا تغيّر عمليات إعادة الهيكلة الوعد بصمت.
حالات الاستخدام
حزم العلامات والمصطلحات
طبّقوا مسرد أسماء منتجات قديمة وكيانات قانونية وأشكال قصيرة في مرور مرتّب واحد حتى تُعاد كتابة العبارات الطويلة قبل السلاسل الجزئية القصيرة ويحصل كل مستند على نفس مجموعة المصطلحات.
الأسئلة الشائعة
ماذا يحدث إذا كان مصطلح البحث فارغًا؟
يُرفض find الفارغ في أي زوج حتى لا تشغّل المسارات عملية صامتة بلا أثر ولا فخ استبدال السلسلة الفارغة في كل موضع؛ ولا تُحسب تلك الإخفاقات.
بأي ترتيب تُطبَّق الأزواج؟
تسلسلي صارم: يحرّر الزوج الأول النص الأصلي، والثاني ذلك الناتج، وهكذا. قد تعيد الأزواج اللاحقة كتابة نص أدخلته استبدالات سابقة — ضعوا العبارات الطويلة قبل القصيرة عندما يهم الترتيب.
هل يدعم find التعبيرات النمطية؟
لا. يُعامل كل مصطلح بحث دائمًا كسلسلة حرفية. تطابق النقاط والأقواس ومحارف regex الأخرى نفسها حتى تبقى حزم المصطلحات متوقعة للمحررين والمهام الجماعية.
كم زوجًا يمكنني تطبيقه في المرة الواحدة؟
حتى 100 زوج في مرور واحد. ويعرض كل زوج عدد مرات تطبيقه مع إجمالي التغييرات، فترى أي بند من قائمة مصطلحاتك عمل وأيها لم يجد شيئًا.
هل يمكن تجاهل حالة الأحرف في كل الأزواج؟
نعم، فخيار واحد يطبّق ذلك على كل أزواج القائمة، فتُستبدل Hello وHELLO معًا دون أن تضيف كل صيغة زوجًا مستقلًا. أما افتراضيًا فتُراعى حالة الأحرف بدقة.
أدوات ذات صلة
للمطوّرين — الوصول عبر API
كل ما في هذه الصفحة متاح برمجيًا. هذا القسم موجّه للفرق التقنية التي تريد ربط الأداة بأنظمتها الخاصة؛ بقية المستخدمين يمكنهم استخدام الأداة أعلاه مباشرة دون الحاجة لقراءة ما يلي.
الـEndpoint
صادِق على طلبك بترويسة Bearer، وأرسل طلب POST واحدًا لتدخل مهمتك قائمة التنفيذ فورًا؛ ثم تستلم النتيجة عبر webhook أو رابط موقّع.
استدعِ الخدمة من بيئتك
curl -X POST https://api.kit.forhosting.com/str/replace-multiple \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"Hello ACME Corp. Welcome to ACME. Contact support@acme.example.","replacements":[{"find":"ACME Corp","replace":"Nova Labs"},{"find":"ACME","replace":"Nova"},{"find":"support@acme.example","replace":"hello@nova.example"}]}'const res = await fetch("https://api.kit.forhosting.com/str/replace-multiple", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "Hello ACME Corp. Welcome to ACME. Contact support@acme.example.",
"replacements": [
{
"find": "ACME Corp",
"replace": "Nova Labs"
},
{
"find": "ACME",
"replace": "Nova"
},
{
"find": "support@acme.example",
"replace": "hello@nova.example"
}
]
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/str/replace-multiple",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "Hello ACME Corp. Welcome to ACME. Contact support@acme.example.",
"replacements": [
{
"find": "ACME Corp",
"replace": "Nova Labs"
},
{
"find": "ACME",
"replace": "Nova"
},
{
"find": "support@acme.example",
"replace": "hello@nova.example"
}
]
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/str/replace-multiple", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"Hello ACME Corp. Welcome to ACME. Contact support@acme.example.","replacements":[{"find":"ACME Corp","replace":"Nova Labs"},{"find":"ACME","replace":"Nova"},{"find":"support@acme.example","replace":"hello@nova.example"}]}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"Hello ACME Corp. Welcome to ACME. Contact support@acme.example.","replacements":[{"find":"ACME Corp","replace":"Nova Labs"},{"find":"ACME","replace":"Nova"},{"find":"support@acme.example","replace":"hello@nova.example"}]}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/str/replace-multiple", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)مثال على الطلب
{
"text": "Hello ACME Corp. Welcome to ACME. Contact support@acme.example.",
"replacements": [
{
"find": "ACME Corp",
"replace": "Nova Labs"
},
{
"find": "ACME",
"replace": "Nova"
},
{
"find": "support@acme.example",
"replace": "hello@nova.example"
}
]
}مثال على الاستجابة
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "str.replace_multiple",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}الواجهة غير متزامنة: تستلم task_id فور الإرسال، ويمكنك الاستعلام عن الحالة بمعدل طلب واحد في الثانية.
الأسعار
السعر معلن كما تراه: لا tokens ولا نظام نقاط؛ وإن فشلت المهمة فلن تُحاسَب عليها.
الأخطاء
| HTTP | الرمز | المعنى |
|---|---|---|
401 | unauthorized | مفتاح الوصول مفقود أو غير صالح؛ تحقق من ترويسة Bearer في طلبك. |
402 | insufficient_balance | رصيدك لا يكفي لتنفيذ هذه المهمة؛ أعد شحن الرصيد ثم أعد المحاولة. |
404 | unknown_type | نوع المهمة المطلوب غير موجود في الكتالوج — راجع الاسم المرسل في الطلب. |
429 | rate_limited | تجاوزت الحد المسموح من الطلبات؛ انتظر قليلًا ثم أعد المحاولة. |
ملاحظات تقنية
تأخذ أداة البحث والاستبدال المتعدد سلسلة المصدر مع قائمة مرتّبة من أزواج البحث/الاستبدال، وتطبّق كل زوج بالتسلسل بمطابقة حرفية، وتعيد عقد JSON مستقرًا بالنص النهائي وعدد المطابقات لكل زوج وإجمالي الاستبدالات. يعمل ودجت المتصفح المجاني على جهازكم؛ وتفرض واجهة API المدفوعة مسبقًا $0.002 لكل عنصر ناجح عندما تحتاج الخوادم وSDK نفس التحويل متعدد الأزواج بكميات كبيرة.
معنى البحث والاستبدال المتعدد ومتى يُستخدم
ترفع سلسلة find الفارغة في أي زوج invalid_input، ما يحمي المهام الجماعية من فخ استبدال السلسلة الفارغة في كل موضع.
عقد الإدخال والأزواج المرتبة وقراءة الاستجابة
عند غياب replace تُستخدم السلسلة الفارغة فتحذف كل مطابقة لذلك الزوج. داخل كل زوج يقبل find أيضًا search أو needle أو from أو old؛ ويقبل replace أيضًا replacement أو with أو to أو new. يُقبل حتى مئة زوج في الطلب الواحد. أرسلوا جسم JSON بالحقل النصي الإلزامي text مصدرًا تريدون تحريره والحقل المصفوفي الإلزامي replacements يحتوي كائنًا واحدًا على الأقل بسلسلة find غير فارغة وسلسلة replace اختيارية. الافتراضي لـ case_insensitive هو false للحالة الدقيقة؛ اضبطوه true عندما يجب أن تطابق المسودات المختلطة على كل زوج. تُقبل أسماء بديلة للعملاء القدامى: text أيضًا كـ input أو value أو s أو content أو source؛ وreplacements كـ pairs أو rules أو substitutions؛ وcase_insensitive كـ ignore_case أو ci أو insensitive. غياب text أو replacements أو قائمة ليست مصفوفة أو قائمة فارغة أو زوج ليس كائنًا أو find ليس سلسلة أو find فارغ يرفع invalid_input برسالة تسمي المشكلة، ولا تُحسب هذه الإخفاقات على API المدفوعة مسبقًا. عند النجاح تتضمن الاستجابة result بالسلسلة المحرَّرة بالكامل، وtext مساويًا لـ result لراحة الودجت، وoriginal صدى المدخل الدقيق، وreplacements القائمة المطبَّقة مع كل find وreplace وcount لكل زوج، وpair_count طول تلك القائمة، وtotal_count مجموع كل الاستبدالات، وcase_insensitive منطقيًا، وlength وoriginal_length كأطوال أحرف، وmethod دائمًا replace_multiple. استخدموا result وحده إن احتجتم السلسلة النظيفة فقط؛ وعدّ الزوج عندما يسجّل مسار أي بند مصطلحات اشتعل؛ وtotal_count عندما يتتبع لوحة حجم التحرير. أبقوا الحمولة عند أحجام جملة وفقرة ومستند قصير مناسبة لعازل Worker لا تفريغات بعدة ميغابايت.
استخدام API والتسعير ومسارات العمل والحدود العملية
استخدموا KIT API المدفوعة مسبقًا عندما يحتاج نظام محتوى أو مهمة ETL أو خلفية نماذج أو مكتب دعم أو عميل جوّال نفس التحويل متعدد الأزواج برصيد عند $0.002 لكل عنصر ناجح؛ ولا تستهلك إخفاقات التحقق الرصيد بعد رفض المحرك. مسار نموذجي يرسل حزمة إعادة تسمية علامة تعيد أولًا الاسم القانوني الكامل ثم الأشكال القصيرة ثم عناوين الاتصال، ويتحقق من total_count لتأكيد تحديث كل إصابة متوقعة. يمكن لمؤلفي SDK توثيق text وreplacements كحقول إلزامية وعرض مثال نجاح متعدد الأزواج مع خطأ find فارغ حتى يرى المدمجون وجهي العقد.
حالات التكامل
ملء قوالب متعددة الرموز
احلّوا عدة عناصر نائبة —company وproduct وplan وyear— عبر مسودة أو ماكرو بإدراج كل زوج بحث/استبدال بدل سلسلة استدعاءات API لزوج واحد.
ضمان الجودة والتجهيزات الحتمية
تثبّت أطقم الاختبار مخرجات golden متعددة الأزواج حتى تفشل فورًا في التكامل المستمر أي إعادة هيكلة تغيّر ترتيب الأزواج أو رفض find الفارغ أو المطابقة غير الحساسة لحالة الأحرف.
أسئلة تقنية
كيف أشغّل البحث والاستبدال المتعدد بهذه الأداة؟
أرسلوا JSON مع text يساوي سلسلة المصدر وreplacements مصفوفة كائنات لكل منها find غير فارغ وreplace اختياري. تُطبَّق الأزواج بالترتيب. تتضمن الاستجابة result والعدّ لكل زوج وtotal_count.
هل أداة البحث والاستبدال المتعدد مجانية؟
تعمل أداة المتصفح مجانًا على جهازكم. تستخدم استدعاءات API رصيد KIT المدفوع مسبقًا عند $0.002 لكل عنصر ناجح؛ ولا تُحسب إخفاقات التحقق.