Menu
Coddy logo textTech
flag Ar iconالعربيةdown icon

استخدام string.gsub() للاستبدال

جزء من قسم Logic & Flow في رحلة Lua على Coddy — الدرس 35 من 54.

عند العمل مع السلاسل النصية، غالباً ما تحتاج إلى البحث عن نص واستبداله. تجعل دالة string.gsub() في لغة Lua هذا الأمر سهلاً من خلال إجراء استبدال عام — العثور على جميع حالات ظهور نمط معين واستبدالها بشيء آخر.

تأخذ الصيغة الأساسية ثلاث وسائط: السلسلة الأصلية، والنمط المراد البحث عنه، ونص الاستبدال:

local result = string.gsub(originalString, pattern, replacement)

إليك مثال بسيط يستبدل جميع المسافات بشرطات سفلية:

local text = "hello world from lua"
local cleaned = string.gsub(text, " ", "_")
print(cleaned)  -- النتيجة: hello_world_from_lua

تُعيد الدالة قيمتين: السلسلة النصية المعدلة وعدد عمليات الاستبدال التي تم إجراؤها. يمكنك الحصول على كليهما إذا لزم الأمر:

local result, count = string.gsub("foo bar foo", "foo", "baz")
print(result)  -- النتيجة: baz bar baz
print(count)   -- النتيجة: 2

على عكس بعض دوال السلاسل النصية التي تجد المطابقة الأولى فقط، تقوم string.gsub() باستبدال كل تكرار بشكل افتراضي، مما يجعلها مثالية لمهام تنظيف النصوص مثل إزالة الأحرف غير المرغوب فيها أو توحيد التنسيق.

challenge icon

التحدي

سهل

اكتب دالة cleanText تأخذ text وتعيد نسخة منظفة مع استبدال جميع المسافات بشرطات سفلية.

استخدم string.gsub() لاستبدال كل حرف مسافة في النص بحرف شرطة سفلية.

المعاملات:

  • text (string): النص المراد تنظيفه

الناتج: النص مع استبدال جميع المسافات بشرطات سفلية (string)

ورقة مرجعية

تقوم الدالة string.gsub() بإجراء استبدال عام من خلال البحث عن جميع تكرارات النمط واستبدالها:

local result = string.gsub(originalString, pattern, replacement)

مثال على استبدال المسافات بشرطات سفلية:

local text = "hello world from lua"
local cleaned = string.gsub(text, " ", "_")
print(cleaned)  -- المخرجات: hello_world_from_lua

تعيد الدالة قيمتين: السلسلة النصية المعدلة وعدد الاستبدالات التي تم إجراؤها:

local result, count = string.gsub("foo bar foo", "foo", "baz")
print(result)  -- المخرجات: baz bar baz
print(count)   -- المخرجات: 2

تقوم string.gsub() باستبدال كل تكرار بشكل افتراضي، وليس فقط المطابقة الأولى.

جرّب بنفسك

function cleanText(text)
    -- اكتب الكود هنا
end
quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

جميع دروس Logic & Flow