string.find
code:Lua
start, end = textmodule.string.find(str, pattern, init, plain)
モジュール
引数
table:_
変数 型 概要
1 str string 元の文字列
2 pattern string 検索文字列(正規表現) 3 init number 検索開始位置(省略可)
4 plain boolean 正規表現パターンかどうか(省略可)
返り値
table:_
変数 型 概要
1 start number 開始位置
2 end number 終了位置
概要
strにある正規表現パターンpatternを検索し、その開始位置と終了位置を返す。
見つからなかった場合はnilを返す。
initを指定することで、検索を開始する位置を指定することができる。
負の数を指定することもでき、その場合は末尾から何文字目という形になる。
省略した場合は、1になる。
plainをtrueに設定すると、patternを単なる文字列として扱う。
falseに設定すると、patternは正規表現パターンとして扱う。
省略した場合は、falseになる。
例
code:Lua
require("textmodule")
-- 「Hello World」内の「l」の位置を検索
s, e = textmodule.string.find("Hello World", "l")
print(s, e) -- 3 3
-- 5文字目以降の「l」の位置を検索
s, e = textmodule.string.find("Hello World", "l", 5)
print(s, e) -- 10 10
-- 5文字連続のアルファベットの位置を検索
s, e = textmodule.string.find("Hello World", "A-z{5}") print(s, e) -- 1 5
-- A-z{5} を正規表現ではなく、単なる文字列として扱う s, e = textmodule.string.find("Hello World", "A-z{5}", 1, true) print(s, e) -- nil nil