lua 스크립트 string.gsub() - 문자열 바꾸기

개발/lua script1 2025. 10. 24. 11:07

루아 스크립트에서 문자열을 다루다 보면 특정 단어를 다른 단어로 바꾸거나, 일부 문자를 교체해야 할 때가 있죠?
이럴 때 바로 string.gsub() 함수를 사용하면 됩니다.
이 함수는 “문자열 대체(Replace)” 기능을 담당하고 있어요.


 기본 문법

string.gsub(문자열, 패턴, 대체할문자열 [, 대체횟수])
인자 설명
자열 원본 문자열
패턴 찾을 문자열 또는 패턴
대체할문자열 바꿀 문자열
대체횟수(선택) 몇 개만 바꿀지 지정 (생략 시 전부 변경)
결과값은 (변경된 문자열, 변경된 횟수) 두 가지가 함께 반환됩니다.

 


예제 1. 단순 문자열 바꾸기

local str = "Hello World!"
local result = string.gsub(str, "World", "Lua")
print(result)  -- 출력: Hello Lua!

string.gsub()는 기본적으로 모든 일치 항목을 바꿉니다.
따라서 "abc"가 모두 "xyz"로 변경됩니다.


예제 3. 특정 횟수만 바꾸기

local str = "apple banana apple"
local result = string.gsub(str, "apple", "orange", 1)
print(result)  -- 출력: orange banana apple

이번엔 마지막 인자로 1을 넣어서 "apple"을 한 번만 바꿔봤어요.
필요할 때만 일부 문자열을 교체하고 싶을 때 유용합니다.

 


예제 4. 패턴(정규식) 활용

local str = "a1b2c3"
local result = string.gsub(str, "%d", "X")
print(result)  -- 출력: aXbXcX

여기서 %d는 숫자(0~9) 를 의미하는 패턴입니다. 즉, 모든 숫자를 "X"로 바꿉니다.
이처럼 gsub()은 정규식(패턴) 을 지원하므로, 문자열 조작에 매우 강력합니다.

 


예제 5. 바뀐 횟수 확인하기

local str = "apple apple apple"
local new_str, count = string.gsub(str, "apple", "orange")
print(new_str)  -- 출력: orange orange orange
print(count)    -- 출력: 3

gsub()은 변경된 문자열뿐 아니라 몇 번 바뀌었는지 개수도 반환합니다.
이 기능은 로그나 데이터 처리 시 꽤 유용하게 쓸 수 있어요

 

반응형
admin