本ページでは、主に文字列を扱うstringライブラリと、文字列をUTF8として扱うutf8ライブラリについて解説する。
特に明記されていない場合の慣用
- 返り値:string型
- []で囲われた引数は必須ではなく、ない場合は=で結ばれた値を返す。
- str:任意の文字列
- n,m:任意の整数
- 終端を指定する引数の値が負の数のとき、文字列の末までを範囲にする。
関数一覧
number,... string.byte(str,[n=1],[m=n])
strのnバイト目からmバイト目までの内部数値コードを返す。
string.char(n1,n2,n3,...)
内部数値コードを文字列に変換して全て繋げる。
number, ... utf8.codepoint (str, [n = 1], [m = n])
UTF8上で、strのn文字目からm文字目目までのUTF8数値コードを返す。
utf8.char(x1,x2,...)
任意の数値をUTF8でエンコードする。
utf8.nfcnormalize(str)
strを正規化形式Cで再エンコードする(正準等価性によって分解され、再度合成される。)
utf8.nfdnormalize(str)
strを正規化形式Dで再エンコードする(正準等価性によって分解される。)
string utf8.charpattern() = "[%z\x01-\x7F\xC2-\xF4][\x80-\xBF]*"
strがUTF8として不正がないかを調べるための検索パターン。
string.len(str)
strの文字列の長さ(正確にはバイト数)を返す。
バイト数を返す仕様上、3バイトで指定されている日本語の文字は一文字で3になる。
(nil) number utf8.len (str,[n = 1], [m = -1])
nバイト目(からみてmバイト目まで)のstrのUTF8上での文字数を返す。
不正なbyte列があった場合は、nilとともに最初の不正な文字が何バイト目にあったかをを返す。
number utf8.offset (str,n,[m=1])
mバイト目から見て、UTF上でn文字後が何byte目から始まっているのかを返す。
mバイト目から数えられない場合はエラーを返す。
string.lower(str)
strを全て小文字にする。
string.upper(str)
strを全て大文字にする。
string.rep(str,n)
strをn回繰り返した文字列を返す。
str.reverse(str)
strの順番を逆にした文字列を返す。
function string.gmatch(str,ptn)
呼ばれるたびに、strのptnに一致する部分を(頭の方から)返すイテレータ関数を返す。
function utf8.graphemes(str,[n=1],[m=-1])
呼ばれるたびに、strの一文字が何バイトから始まって何バイトから終わるのかを(nバイト目からmバイト目まで)返すイテレータ関数を返す。
string.sub(str[,n=1],[,m=-1])
strのn文字目(から見てm文字目まで)の文字列を返す。
string.match(str,ptn,[n=1])
n文字目を開始位置として、strについて最初にptnと一致した文字列を返し、ない場合はnilを返す。
number,number string.find(str,ptn,[n=1],[plain=false])
n文字目を開始位置として、strについて最初にptnと一致する頭の文字目と尾の文字目を返し、ない場合はnilを返す。
plainがtrueのとき、ptnのパターンマッチング文字列をただの文字列として扱う。
table string.split(str,[sep=,])
strをsepの文字列のところで分割し、配列にして返す。
sepで指定された文字が連続している場合、連続部分の間に0文字の文字列ががあるとして扱われる
string (,number) string.gsub(str,ptn,repl,[n])
strのptnに一致する部分をreplに指定された方法で置き換えたstrのコピーを返す。
nが指定されている場合、置き換える回数がn回までとなる。
replが文字列のとき、その値で直接置換する。
%n(自然数)は一致した文字列群の部分を表す。
%0は文章全て。
replが関数のとき、一致したときに毎回それが呼ばれる。返り値がnil/falseの時は無効化。
replがテーブルの時、一致した部分の名前の場所に代入されている値へと変換する。
string.format(formatstring,str1,str2,str3,...)
formatstringの記述(Cのprintfファミリーと同じシステム)依存で任意の数の文字列を書式化して返す。
最終更新:2020年08月26日 23:19