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챌린지
쉬움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
이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.
로직 및 흐름 제어 (Logic & Flow)의 모든 레슨
직접 연습해 보세요: 온라인 Lua 컴파일러