본문으로 건너뛰기

string 라이브러리 활용

기본 함수

함수설명예제결과
len문자열 길이 계산string.len("abcd")4
rep문자열 s의 복사본 n개 반환string.rep("abcd",2)abcdabcd
lower문자열의 모든 문자를 소문자로 변환string.lower("AbcD")abcd
upper문자열의 모든 문자를 대문자로 변환string.upper("AbcD")ABCD
format문자열 형식 지정string.format("the value is:%d",4)the value is:4
sub문자열의 일부 추출string.sub("abcd",2)bcd
string.sub("abcd",-2)cd
string.sub("abcd",2,-2)bc
string.sub("abcd",2,3)bc
find문자열에서 검색(위치 표시)string.find("cdcdcdcd","ab")nil
string.find("cdcdcdcd","cd")1 2
string.find("cdcdcdcd","cd",7)7 8
match문자열에서 검색(내용 표시)string.match("cdcdcdcd","ab")nil
string.match("cdcdcdcd","cd")cd
gsub문자열에서 치환string.gsub("abcdabcd","a","z")zbcdzbcd 2
string.gsub("aaaa","a","z",3)zzza 3
byte문자의 정수 표현 반환string.byte("ABCD",4)68
char정수를 문자로 변환하여 연결string.char(97,98,99,100)abcd

기본 패턴 문자열

문자 클래스설명예제결과
.모든 문자string.find("",".")nil
%s공백 문자string.find("ab cd","%s%s")3 4
%S공백이 아닌 문자string.find("ab cd","%S%S")1 2
%p문장 부호string.find("ab,.cd","%p%p")3 4
%P문장 부호가 아닌 문자string.find("ab,.cd","%P%P")1 2
%c제어 문자string.find("abcd\t\n","%c%c")5 6
%C제어 문자가 아닌 문자string.find("\t\nabcd","%C%C")3 4
%d숫자string.find("abcd12","%d%d")5 6
%D숫자가 아닌 문자string.find("12abcd","%D%D")3 4
%x십육진수 숫자string.find("efgh","%x%x")1 2
%X십육진수 숫자가 아닌 문자string.find("efgh","%X%X")3 4
%a문자string.find("AB12","%a%a")1 2
%A문자가 아닌 문자string.find("AB12","%A%A")3 4
%l소문자string.find("ABab","%l%l")3 4
%L대문자string.find("ABab","%L%L")1 2
%u대문자string.find("ABab","%u%u")1 2
%U대문자가 아닌 문자string.find("ABab","%U%U")3 4
%w문자와 숫자string.find("a1()","%w%w")1 2
%W문자도 숫자도 아닌 문자string.find("a1()","%W%W")3 4

이스케이프 문자 %

문자 클래스설명예제결과
%이스케이프 문자string.find("abc%..","%%")4 4
string.find("abc..d","%.%.")4 5

[]로 문자 집합 만들기: "-"는 범위 연결 문자, "^"는 문자 집합의 여집합

문자 클래스설명예제결과
[01]이진수 숫자와 일치string.find("32123","[01]")3 3
[AB][CD]AC, AD, BC, BD와 일치string.find("ABCDEF","[AB][CD]")2 3
[[]]대괄호 한 쌍 []와 일치string.find("ABC[]D","[[]]")4 5
[1-3]숫자 1~3과 일치string.find("312","[1-3][1-3][1-3]")1 3
[b-d]문자 b~d와 일치string.find("dbc","[b-d][b-d][b-d]")1 3
[^%s]공백이 아닌 모든 문자와 일치string.find(" a ","[^%s]")3 3
[^%d]숫자가 아닌 모든 문자와 일치string.find("123a","[^%d]")4 4
[^%a]문자가 아닌 모든 문자와 일치string.find("abc1","[^%a]")4 4

"()"로 캡처하기

문자 클래스설명예제결과
()문자열 캡처string.find("12ab","(%a%a)")3 4 ab
string.find("ab12","(%d%d)")3 4 12

패턴 한정자

한정자설명예제결과
+1개 이상, 가장 많이 일치string.find("aaabbb","(a+b)")1 4 aaab
string.find("cccbbb","(a+b)")nil
-0개 이상, 가장 적게 일치string.find("zzxyyy","(xy-)")3 3 x
string.find("zzzyyy","(x-y)")4 4 y
*0개 이상, 가장 많이 일치string.find("mmmnnn","(m*n)")1 4 mmmn
string.find("lllnnn","(m*n)")4 4 n
?0개 또는 1개string.find("aaabbb","(a?b)")3 4 ab
string.find("cccbbb","(a?b)")4 4 b

match의 일반적인 사용법

설명예제결과
중국어 문자와 일치string.match("男女abc123","([^%w%p]+)")男女
영문자와 일치string.match("男女abc123","(%a+)")abc
숫자와 일치string.match("男女abc123","(%d+)")123
영문자와 숫자와 일치string.match("男女abc123","(%w+)")abc123