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התבנית הזאת בודקת אם המחרוזת מתחילה באות, ולכן היא שימושית לאימות קלט במקרים שבהם נדרשים פורמטים מסוימים.
אתגר
קלכתבו פונקציה startsWithLetter שמקבלת text ומחזירה האם המחרוזת מתחילה באות.
השתמשו ב-string.find() עם העוגן ^ ומחלקת התווים %a כדי לבדוק אם המחרוזת מתחילה באות.
פרמטרים:
text(מחרוזת): המחרוזת לאימות
ערך מוחזר: true אם המחרוזת מתחילה באות, false אחרת (בוליאני)
נסו בעצמכם
function startsWithLetter(text)
-- כתבו כאן את הקוד
end
השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה לוגיקה וזרימת התוכנית
1איטרציה מתקדמת בטבלאות
איטרציה באמצעות pairs()איטרציה באמצעות ipairs()pairs() לעומת ipairs()סיכום – גיליון דמות4מבוא למטא־טבלאות
מהי מטא־טבלה?setmetatable ו־getmetatableמטא־מתודת __indexמטא־מתודת __newindexמטא־מתודת __tostringמטא־מתודות אריתמטיות חלק 1מטא־מתודות אריתמטיות חלק 2סיכום — טבלה לקריאה בלבד7מניפולציה מתקדמת של מחרוזות
החלפה באמצעות string.gsub()מבוא לתבניות מחרוזתstring.find()string.match()איטרציה באמצעות string.gmatch()סיכום – מנתח קובצי יומן2פונקציות נוספות של ספריית הטבלאות
table.concat()בניית טבלה ו־unpack()table.sort()מיון מותאם אישית באמצעות פונקציותסיכום – לוח שיאיםתרגלו בעצמכם: קומפיילר Lua אונליין