استخدام string.gsub() للاستبدال
جزء من قسم المنطق والتحكم في التدفق في رحلة Lua على Coddy. الدرس 35 من 54.
عند العمل مع string، تحتاج غالبًا إلى البحث عن نص واستبداله. تجعل الدالة 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تُرجع function قيمتين: السلسلة النصية المعدَّلة وعدد الاستبدالات التي أُجريت. يمكنك التقاط القيمتين إذا لزم الأمر:
local result, count = string.gsub("foo bar foo", "foo", "baz")
print(result) -- المخرجات: baz bar baz
print(count) -- المخرجات: 2على عكس بعض دوال السلاسل النصية التي تعثر على التطابق الأول فقط، تستبدل string.gsub() كل تكرار افتراضيًا، مما يجعلها مثالية لمهام تنظيف النصوص مثل إزالة الأحرف غير المرغوب فيها أو توحيد التنسيق.
التحدي
سهلاكتب function باسم cleanText يأخذ text ويُرجع نسخة منظَّفة منه مع استبدال جميع المسافات بشرطات سفلية.
استخدم string.gsub() لاستبدال كل حرف مسافة في النص بحرف شرطة سفلية.
المعلمات:
text(string): النص المراد تنظيفه
القيمة المُعادة: النص مع استبدال جميع المسافات بشرطات سفلية (string)
جرّب بنفسك
function cleanText(text)
-- اكتب الكود هنا
end
يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس المنطق والتحكم في التدفق
1التكرار المتقدم عبر الجداول
التكرار باستخدام pairs()التكرار باستخدام ipairs()pairs() مقابل ipairs()مراجعة - ورقة الشخصية4مقدمة إلى Metatables
ما هو الـ Metatable؟setmetatable و getmetatableالـ Metamethod المسماة __indexالـ Metamethod المسماة __newindexالـ Metamethod المسماة __tostringالـ Metamethods الحسابية - الجزء الأولالـ Metamethods الحسابية - الجزء الثانيملخص - جدول للقراءة فقط7معالجة النصوص المتقدمة
استخدام string.gsub() للاستبدالمقدمة في أنماط النصوصstring.find()string.match()التكرار باستخدام string.gmatch()مراجعة - محلل ملفات السجل2المزيد من دوال مكتبة Table
table.concat()إنشاء الجداول و unpack()table.sort()فرز مخصص باستخدام الدوالمراجعة - لوحة أعلى النتائجتدرّب بنفسك: مترجم Lua عبر الإنترنت