Menu
Coddy logo textTech

string.find()

Coddy Lua 여정의 로직 및 흐름 제어 (Logic & Flow) 섹션에 포함된 레슨. 54개 중 37번째.

이제 문자 클래스를 이해했으므로 string.find()와 함께 사용하여 정확히 일치하는 텍스트 대신 패턴을 검색할 수 있습니다. 이를 통해 텍스트 검증 및 분석을 위한 강력한 가능성이 열립니다.

string.find() 함수는 리터럴 문자열과 동일한 방식으로 패턴과 함께 작동합니다. 패턴이 처음 일치하는 position을 반환합니다:

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는 숫자가 아닌 모든 문자와 일치하므로 position 1에서 첫 번째 letter를 find합니다.

일반적인 유효성 검사 작업 중 하나는 문자열이 특정 패턴으로 시작하는지 확인하는 것입니다. 패턴의 시작 부분에 앵커 ^를 사용하면 문자열의 시작 위치에서만 일치하도록 할 수 있습니다:

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를 입력받고 문자열이 문자로 시작하는지 여부를 반환하세요.

문자열이 문자로 시작하는지 확인하려면 앵커 ^%a 문자 클래스를 사용하여 string.find()를 사용하세요.

매개변수:

  • text (string): 유효성을 검사할 문자열

반환값: 문자열이 문자로 시작하면 true, 그렇지 않으면 false(boolean)

직접 해보기

function startsWithLetter(text)
    -- 여기에 코드를 작성하세요
end
quiz icon실력 점검

이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.

로직 및 흐름 제어 (Logic & Flow)의 모든 레슨

직접 연습해 보세요: 온라인 Lua 컴파일러