Как проверить шаблон в Луа - PullRequest
1 голос
/ 12 февраля 2011

В настоящее время я создаю функцию поиска в lua, которая в основном просто просматривает список элементов и обрабатывает элементы, которые соответствуют входной строке определенным образом.Я использую string.find(sourceString, inputString) для идентификации элементов.

Функция вызывается всякий раз, когда пользователь вводит что-то в текстовое поле, поэтому, если он пытается ввести шаблон, случается, что при использовании наборов или захватов функция вызывается, когдастрока поиска просто содержит [ или a (без закрывающего эквивалента, причина которого приводит к ошибке.

Лучший способ обойти эту проблему, я думаю, это проверить ввод как действительныйшаблон, но я понятия не имею, как это сделать. Сама Lua, похоже, не содержит метода для этого, и я немного запутался в том, как проверить его более или менее производительным способом. Спасибо за вашу помощьи идеи заранее:)

Ответы [ 2 ]

3 голосов
/ 13 февраля 2011

Вы должны заключить вызов в string.find с pcall, чтобы зафиксировать ошибку.

local status, result = pcall(string.find, sourceString, inputString)
if not status then
    -- bad pattern logic, error message is in result
else
    -- good pattern logic, result contains the start index
end
1 голос
/ 12 февраля 2011

См. this для функции escape-шаблона (взято где-то в Lua Users вики, я думаю).Вы можете преобразовать его в функцию проверки, если вам нужно.

...