String.gmatch (Lua)
Материал из UoPilot
Содержание[убрать] |
Описание
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") -- очистить лог, компактный режим str1 = "hello world from Lua" -- строка for w in string.gmatch(str1, "%a+") do -- цикл, ищет все слова в строке log(w) -- вывести в лог содержимое переменной 'w' end
--lua log ("clear") log ("mode compact") -- очистить лог, компактный режим str1 = "Координаты: X = 360, Y = 638" -- строка for w in string.gmatch(str1, "%d+") do -- искать все числа в строке log(w) -- вывести в лог end
--lua str1 = "Координаты: X = 360, Y = 638, цвет = 255" -- строка 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 str1 = "С 12:30 до 13:15 обед" -- строка 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)