본문으로 건너뛰기

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