string.find()
Coddy Lua 여정의 논리와 흐름 제어 섹션에 포함된 레슨. 54개 중 37번째.
이제 문자 클래스를 이해했으니, 정확한 텍스트 대신 패턴을 검색하기 위해 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 (.은 모든 문자와 일치함)챌린지
쉬움문자열이 문자로 시작하는지 반환하는 startsWithLetter 함수를 작성하세요. 이 함수는 text를 받습니다.
문자열이 문자로 시작하는지 확인하려면 앵커 ^와 문자 클래스 %a를 사용하여 string.find()를 사용하세요.
매개변수:
text(문자열): 유효성을 검사할 문자열
반환값: 문자열이 문자로 시작하면 true, 그렇지 않으면 false (불리언)
직접 해보기
function startsWithLetter(text)
-- 여기에 코드를 작성하세요
end
이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.
논리와 흐름 제어의 모든 레슨
직접 연습해 보세요: 온라인 Lua 컴파일러