String.gmatch (Lua)
Перейти к навигации
Перейти к поиску
Содержание
Описание
string.gmatch - возвращает итератор, который, при каждом вызове, возвращает следующее вхождение шаблона в строке. Если шаблон не содержит захватов, то простое сравнение будет выполнено при каждом вызове. Для поиска можно использовать регулярные выражения.
Синтаксис
Привязка к окну: нет.
Работа со свернутым окном: да.
Параметры заключаются в скобки и разделяются запятыми.
string.gmatch (<s>, <шаблон>)
Или:
<s>:gmatch(<шаблон>)
Где:
s - строка.
шаблон - что искать или регулярное выражение.
Или:
for <var> in string.gmatch(<s>, <шаблон>) do -- код end
Где:
var - переменная, которой на каждой итерации будет присвоен результат поиска.
Поддерживаемые опции регулярных выражений:
. -- Любой символ %a -- Буква (только англ.!) %A -- Любая буква (русская), символ, или цифра, кроме английской буквы %c -- Управляющий символ %d -- Цифра %D -- Любая буква, или символ, кроме цифры %l -- Буква в нижней раскладке (только англ.!) %L -- Любая буква, символ, или цифра, кроме английской буквы в нижней раскладке %p -- Символ пунктуации %P -- Любая буква, символ, или цифра, кроме символа пунктуации %s -- Символ пробел %S -- Любая буква, символ, или цифра, кроме символа пробела %u -- Буква в верхней раскладке (только англ.!) %U -- Любая буква, символ, или цифра, кроме английской буквы в верхней раскладке %w -- Любая буква, или цифра (только англ.!) %W -- Любой символ, или буква (русская), кроме английской буквы, или цифры %x -- Шестнадцатеричное число %X -- Любая буква, или символ, кроме цифры, или английской буквы, используемой в записи шестнадцатеричного числа %z -- Строковые параметры, содержащие символы с кодом 0
Примеры
--lua log ("clear") log ("mode compact") -- очистить лог, компактный режим local str1 = "hello world from Lua" -- строка for w in string.gmatch(str1, "%a+") do -- цикл, ищет все слова в строке log(w) -- вывести в лог содержимое переменной 'w' end
--lua log ("clear") log ("mode compact") -- очистить лог, компактный режим local str1 = "Координаты: X = 360, Y = 638" -- строка for w in string.gmatch(str1, "%d+") do -- искать все числа в строке log(w) -- вывести в лог end
--lua local str1 = "Координаты: X = 360, Y = 638, цвет = 255" -- строка local arr = {} -- массив, в который будет записан результат поиска for w in string.gmatch(str1, "%d+") do -- искать все числа в строке table.insert(arr, w) -- добавить значение переменной w в массив end log ("clear") log ("mode compact") -- очистить лог, компактный режим log(table.concat(arr, ", ")) -- вывести в лог содержимое массива через запятую, arr[1] - первый элемент, arr[2] - второй и т. д.
--lua local str1 = "С 12:30 до 13:15 обед" -- строка local arr = {} -- массив, в который будет записан результат поиска for w in string.gmatch(str1, "%d+%:%d+") do -- искать в строке время в формате число:число table.insert(arr, w) -- добавить значение переменной w в массив end log ("clear") log ("mode compact") -- очистить лог, компактный режим log(table.concat(arr, ", ")) -- вывести в лог содержимое массива через запятую
Смотрите также
Tonumber (Lua)
Tostring (Lua)
String.find (Lua)
String.gsub (Lua)
String.match (Lua)
String.format (Lua)