碰到一个有点奇怪的问题......我想把字符串:
一个\左(b_{d}\右)
进入
一个 \left( b_{d} \right)
在 Scite 中使用 Lua 脚本。
因此,我为 Scite 制作了以下 Lua 脚本:
function SpaceTexEquations()
editor:BeginUndoAction()
local sel = editor:GetSelText()
local cln3 = string.gsub(sel, "\\left(", " \\left( ")
local cln4 = string.gsub(cln3, "\\right)", " \\right) ")
editor:ReplaceSel(cln4)
editor:EndUndoAction()
end
cln3 行工作正常,但是,cln4 崩溃:
/home/user/sciteLuaFunctions.lua:49: invalid pattern capture
>Lua: error occurred while processing command
我认为这是因为括号字符 () 是 Lua 中的保留字符;但是,为什么 cln3 行没有转义?顺便说一句,我也试过:
-- using backslash \ as escape char:
local cln4 = string.gsub(cln3, "\\right\)", " \\right) ") -- crashes all the same
-- using percentage sign % as escape chare
local cln4 = string.gsub(cln3, "\\right%)", " \\right) ") -- does not crash, but does not match either
谁能告诉我这样做的正确方法是什么?
谢谢,
干杯!