CELua[RU]
    • Категории
    • Последние
    • Метки
    • Популярные
    • Пользователи
    • Группы
    • Зарегистрироваться
    • Войти

    Часть2. Lua простые регулярные выражения

    Запланировано Прикреплена Закрыта Перенесена Программирование
    lua regularce lua
    1 Сообщения 1 Posters 41 Просмотры 1 Watching
    Загружаем больше сообщений
    • Сначала старые
    • Сначала новые
    • По количеству голосов
    Ответить
    • Ответить, создав новую тему
    Авторизуйтесь, чтобы ответить
    Эта тема была удалена. Только пользователи с правом управления темами могут её видеть.
    • MasterGHM Не в сети
      MasterGH Администраторы
      отредактировано MasterGH

      Если нужно найти начало и конец подстроки. Пример

      Попробуем найти слово lab в троке gamehacklab.ru

      print(string.find('gamehacklab.ru', 'lab'))
      >9 11
      

      Если не найдена подстрока, то вернет nil.
      С помощью string.match можем выводить не индексы, а строку

      print(string.match('gamehacklab.ru', 'lab'))
      >lab
      

      С помощью string.gmatch можем выводить последовательно строки

      Где 'a.' означает символ 'a' и еще один следующий любой

      local result = string.gmatch('gamehacklab.ru', 'a.')
      print(result())
      print(result())
      print(result())
      
      вывод
      >am 
      >ac 
      >ab 
      

      Здесь комбинация символов "%a+" означает искать слово пока оно не закончится

      s = "hello world from Lua"
      for w in string.gmatch(s, "%a+") do
        print(w)
      end
      
      Вывод
      > hello 
      > world 
      > from 
      > Lua
      

      А здесь заполняем таблицу ключ — значение из строки, которую можно было бы взять из файла

      t = {}
      s = "X=0, Y=0, Z=0"
      for k, v in string.gmatch(s, "(%w+)=(%w+)") do
        t[k] = v
      end
      
      for i, v in pairs(t) do
        print(i..' = '..v)
      end
      
      Вывод
      >Z = 0 
      >X = 0 
      >Y = 0 
      

      Пока на этом все... Более сложные примеры в предыдущей части записи

      1 ответ Последний ответ Ответить Цитировать 0

      • 1 / 1
      • Первое сообщение
        Последнее сообщение
      Powered by NodeBB | Contributors
      СeLua[RU] 2025©