Menu
Coddy logo textTech

string.gmatch()를 이용한 반복 처리

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

string.match()는 패턴의 첫 번째 일치 항목을 찾지만, 문자열에서 모든 일치 항목을 찾아야 한다면 어떻게 해야 할까요? string.gmatch() 함수는 한 번에 하나씩 각 일치 항목을 처리하기 위해 for 루프에서 사용할 수 있는 반복자를 반환하여 이 문제를 해결합니다.

기본 구문은 다음과 같습니다:

for match in string.gmatch(text, pattern) do
    -- 각 매치를 처리
end

문자열에서 모든 숫자를 찾는 예시는 다음과 같습니다:

local text = "I have 3 apples and 5 oranges"
for number in string.gmatch(text, "%d+") do
    print(number)
end
-- 출력:
-- 3
-- 5

패턴 %d+은(는) 하나 이상의 숫자와 일치하며, 루프는 찾은 각 숫자마다 한 번씩 실행됩니다.

문장에서 모든 단어를 추출할 수도 있습니다:

local sentence = "Lua is a powerful language"
for word in string.gmatch(sentence, "%a+") do
    print(word)
end
-- 출력:
-- Lua
-- is
-- a
-- powerful
-- language
challenge icon

챌린지

쉬움

extractHashtags function을 작성하여 text를 입력받고 text에서 찾은 모든 hashtags를 각각 별도의 줄에 반환하세요.

string.gmatch()를 사용하여 text에서 모든 hashtags를 찾으세요. hashtag는 #으로 시작하고 하나 이상의 문자로 이어집니다.

로직:

  • string.gmatch()"#%a+" pattern을 사용하여 모든 hashtags를 찾으세요
  • each match를 순회하며 수집하세요
  • 모든 hashtags를 줄바꿈 문자(\n)로 결합하세요
  • hashtags가 발견되지 않으면 빈 string을 반환하세요

매개변수:

  • text (string): hashtags를 검색할 text

반환값: 찾은 모든 hashtags를 각각 별도의 줄에 반환합니다. hashtags가 없으면 빈 string을 반환합니다 (string).

직접 해보기

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

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

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

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