string.find()
جزء من قسم المنطق والتحكم في التدفق في رحلة Lua على Coddy. الدرس 37 من 54.
الآن بعد أن فهمت فئات الأحرف، يمكنك استخدامها مع string.find() للبحث عن الأنماط بدلًا من النص المطابق تمامًا. وهذا يتيح إمكانات قوية للتحقق من صحة النص وتحليله.
تعمل الدالة string.find() مع الأنماط بالطريقة نفسها التي تعمل بها مع السلاسل النصية الحرفية. وتُرجع الموضع الذي يتطابق فيه النمط أولًا:
local text = "User123"
local position = string.find(text, "%d")
print(position) -- الناتج: 5يبحث هذا عن الرقم الأول في السلسلة النصية، وهو في الموضع 5. يمكنك أيضًا البحث عن العكس باستخدام فئات الأحرف المكتوبة بأحرف كبيرة:
local code = "ABC123"
local position = string.find(code, "%D")
print(position) -- المخرجات: 1هنا، يطابق %D أي محرف غير رقمي، لذا يجد الحرف الأول في الموضع 1.
من مهام التحقق الشائعة التحقق مما إذا كانت سلسلة نصية تبدأ بنمط محدد. يمكنك استخدام المرساة ^ في بداية النمط للمطابقة عند بداية السلسلة النصية فقط:
local username = "player42"
local startsWithLetter = string.find(username, "^%a")
if startsWithLetter then
print("Valid username")
else
print("Username must start with a letter")
endيتحقق هذا النمط مما إذا كانت string تبدأ بحرف، مما يجعله مفيدًا للتحقق من صحة الإدخال عندما تكون هناك حاجة إلى تنسيقات معينة.
التحدي
سهلاكتب دالة startsWithLetter تتلقى text وتُرجع ما إذا كانت السلسلة تبدأ بحرف.
استخدم string.find() مع المُثبّت ^ وفئة المحارف %a للتحقق مما إذا كانت السلسلة تبدأ بحرف.
المعلمات:
text(string): السلسلة المطلوب التحقق منها
القيمة المُعادة: true إذا بدأت السلسلة بحرف، وfalse خلاف ذلك (boolean)
جرّب بنفسك
function startsWithLetter(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 عبر الإنترنت