Menu
Coddy logo textTech

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

התבנית הזאת בודקת אם המחרוזת מתחילה באות, ולכן היא שימושית לאימות קלט במקרים שבהם נדרשים פורמטים מסוימים.

challenge icon

אתגר

קל

כתבו פונקציה startsWithLetter שמקבלת text ומחזירה האם המחרוזת מתחילה באות.

השתמשו ב-string.find() עם העוגן ^ ומחלקת התווים %a כדי לבדוק אם המחרוזת מתחילה באות.

פרמטרים:

  • text (מחרוזת): המחרוזת לאימות

ערך מוחזר: true אם המחרוזת מתחילה באות, false אחרת (בוליאני)

נסו בעצמכם

function startsWithLetter(text)
    -- כתבו כאן את הקוד
end
quiz iconבחנו את עצמכם

השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.

כל השיעורים ביחידה לוגיקה וזרימת התוכנית

תרגלו בעצמכם: קומפיילר Lua אונליין