Menu
CoddyTech

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

يتحقق هذا النمط مما إذا كانت السلسلة تبدأ بحرف، مما يجعله مفيدًا للتحقق من صحة المدخلات عندما تكون هناك حاجة إلى تنسيقات معينة.

للعثور على المحرف الخاص نفسه، مثل النقطة، إمّا أن تهرّبه باستخدام % أو أن تعطّل الأنماط باستخدام بحث عادي (1 للبدء من المحرف الأول، وtrue للبحث العادي):

print(string.find("v1.5", "%."))         -- الناتج: 3 3
print(string.find("v1.5", ".", 1, true))  -- الناتج: 3 3
print(string.find("v1.5", "."))          -- الناتج: 1 1 (تطابق . أي محرف)
challenge icon

التحدي

سهل

اكتب دالة startsWithLetter تأخذ text وتُرجع ما إذا كانت السلسلة تبدأ بحرف.

استخدم string.find() مع علامة البداية ^ وفئة الأحرف %a للتحقق مما إذا كانت السلسلة تبدأ بحرف.

المعاملات:

  • text (سلسلة): السلسلة المطلوب التحقق من صحتها

القيمة المُعادة: true إذا كانت السلسلة تبدأ بحرف، وfalse خلاف ذلك (قيمة منطقية)

جرّب بنفسك

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

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

جميع دروس المنطق وتسلسل التنفيذ

تدرّب بنفسك: مترجم Lua عبر الإنترنت