匹配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'