(Извините за мой ломаный английский)
Я пытаюсь сопоставить or
в строке и, если он не заключен в одинарные кавычки, заменить его знаком минус (-
). Например:
local input1 = "'condition1' or 'condition2'"
input1:gsub(pattern, "-") --> Should return "'condition1' - 'condition2'"
local input2 = "'condition1 or condition2'" -- Note the position of the '
input2:gsub(pattern, "-") --> Should return "'condition1 or condition2'"
Где pattern
— это шаблон Lua, который я прошу.
Я уверен, что мне нужно использовать %b''
, чтобы определить, заключен ли в кавычки or
, поэтому я попробовал это как свой шаблон: [^%b'']or
Но это не работает для меня.
Обратите внимание, что я могу использовать только чистые библиотеки Lua (поэтому никаких LPeg
), так как код будет выполняться в разных средах выполнения Lua (все 5.2), не поддерживающих библиотеки C.
И обратите внимание, что этот вопрос не является дубликатом - нет вопроса, как сделать это в Lua с его собственными шаблонами.
pattern = "(%b'')%s+or%s+(%b'')"
, а для замены используйте'%1 - %2'
- person tonypdmtr   schedule 10.05.2017