Lua 如何删除“后的空白”;(“在字符串中?

Lua 如何删除“后的空白”;(“在字符串中?,lua,Lua,一个lua新手在这里 我想将字符串'$\\psi\\left(y\\right)$'替换为'$\\psi\\left(y\\right)$',即删除(之后和下一个非空格字符之前显示的所有空格 我一直在尝试gsub,但每次尝试都没有成功。这就是我所尝试的 function foo(s) print('before s = '..s) str=string.gsub(s,"\\left( ","\\left(") print('after s= '..str

一个lua新手在这里

我想将字符串
'$\\psi\\left(y\\right)$'
替换为
'$\\psi\\left(y\\right)$'
,即删除
之后和下一个非空格字符之前显示的所有空格

我一直在尝试
gsub
,但每次尝试都没有成功。这就是我所尝试的

function foo(s)
print('before s = '..s)
str=string.gsub(s,"\\left(  ","\\left(")
print('after s= '..str)
return str
end
并尝试

function foo(s)
print('before s = '..s)
str=string.gsub(s,"\\left(%s+","\\left(")
print('after s= '..str)
return str
end
还有一些其他的变化,但是每次我调用这个函数

 foo('$\\psi\\left(  y\\right)$')
返回的字符串是相同的。空白仍然存在

正确的方法是什么?在linux上使用Lua
5.2.4


我打算在lualatex中使用此函数,这些字符串将作为字符串从latex传递到lua。但我现在正在Linux上的独立lua安装中尝试此函数,先看看它是否工作,然后再在lualatex中使用。

这样的神奇字符需要转义

请参阅

“\\left(%s+”
替换为
”\\left%(%s+”
“\\left(+”
替换为
“\\left%(+”


在我看来,这像是一个bug。这实际上会导致“未完成捕获”错误。至少在模式中的第一个字符是
)的情况下是这样的。

这样的魔法字符需要转义

请参阅

“\\left(%s+”
替换为
”\\left%(%s+”
“\\left(+”
替换为
“\\left%(+”


在我看来,这像是一个错误。这实际上应该会导致“未完成捕获”错误。至少如果
是模式中的第一个字符,它会出现错误。

你可以尝试使用正则表达式,它应该更容易。你可以尝试使用正则表达式,它应该更容易