Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/lua/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
匹配Lua中未包含在引号中的单词_Lua_Lua Patterns - Fatal编程技术网

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

匹配Lua中未包含在引号中的单词,lua,lua-patterns,Lua,Lua Patterns,(对不起,我的英语不好) 我正在尝试匹配字符串中的或,如果它没有包含在单引号中,则将其替换为减号(-)。 例如: local input1 = "'condition1' or 'condition2'" input1:gsub(pattern, "-") --> Should return "'condition1' - 'condition2'" local input2 = "'condition1 or condition2'" -- Note the position o

(对不起,我的英语不好)
我正在尝试匹配字符串中的
,如果它没有包含在单引号中,则将其替换为减号(
-
)。 例如:

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'
来检测
是否被引用,因此我尝试将此作为我的模式:
[^%b']或

但这对我不起作用

请注意,我只能使用纯Lua库(因此没有
LPeg
),因为代码将在不支持C库的不同Lua运行时(所有5.2)中运行

请注意,这个问题不是重复的——毫无疑问,在Lua中如何使用自己的模式来实现这个问题

尝试
输入:gsub(“(“.-”.-)或“,“%1-”)

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

使用
pattern=“(%b”)%s+或%s+(%b”)”
替换使用
'%1-%2'