匹配 Lua 中未包含在引号中的单词

Match word which is not enclosed in quotes in Lua

(抱歉我的英语不好)
我正在尝试匹配字符串中的 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),因为代码将在不支持 C 库的不同 Lua 运行时(所有 5.2)中运行.

并且请注意,这个问题不是重复的 - 没有问题询问如何做到这一点在Lua 有自己的模式。

尝试input:gsub("('.-'.-)or","%1-")

这假定 or 总是出现在带引号的字符串之后。它捕获从引用字符串到 or 之前的所有内容,并根据需要将其替换为捕获的文本,后跟 -