Lua에서 string.sub, :sub 함수 정리와 사용법

개발/lua script1 2025. 12. 17. 08:32

Lua에서 string.sub는 문자열에서 원하는 구간을 잘라서 "부분 문자열(substring)"을 만드는 함수입니다.

 

1) string.sub 기본 형태

string.sub(문자열, 시작인덱스 [, 끝인덱스])

 

  • 시작인덱스부터 끝인덱스까지 잘라냅니다.
  • 끝인덱스를 생략하면 "시작인덱스부터 문자열 끝까지"를 반환합니다.

 

예시:

local s = "Hello Lua"

print(string.sub(s, 1, 5))  -- Hello
print(string.sub(s, 7))     -- Lua

 

Lua의 문자열 인덱스는 1부터 시작합니다.

 

  • 1: 첫 번째 문자
  • 2: 두 번째 문자
  • 0: 일반적인 의미의 “첫 글자”가 아닙니다(의도와 다르게 동작할 수 있어서 보통 쓰지 않습니다)

간단 예시로 보면:

local s = "ABC"

print(string.sub(s, 1, 1))  -- A
print(string.sub(s, 2, 2))  -- B
print(string.sub(s, 3, 3))  -- C

 

2) 음수 인덱스 지원 (뒤에서부터)

string.sub는 음수 인덱스를 지원합니다.

 

  • -1: 마지막 문자
  • -2: 뒤에서 두 번째 문자
local s = "ABCDE"

print(string.sub(s, -1))      -- E
print(string.sub(s, -3, -1))  -- CDE

4) str:sub(...) 사용법

Lua에서는 문자열도 "문자열 라이브러리" 함수들을 메서드처럼 호출할 수 있습니다.

 

아래 두 줄은 완전히 같은 의미입니다.

string.sub(s, 1, 5)
s:sub(1, 5)

 

예시:

local s = "Hello Lua"
print(s:sub(1, 5))  -- Hello
print(s:sub(7))     -- Lua

 

참고로 : 문법은 첫 번째 인자(자기 자신)를 자동으로 넘기는 문법이라서,

str:sub(1,5)는 내부적으로 string.sub(str,1,5)처럼 호출됩니다.

반응형
admin