【发布时间】:2019-12-04 12:09:37
【问题描述】:
我想替换 lua 中的字符串。这是字符串。
strng='\begin{matrix} 1 & 2 & 3 \\ 4 & 5 & 6 \\ 7 & 8 & 10 \end{matrix}'
我想换
\begin{matrix} by {{
& by ,
\\ by },{
\end{matrix} by }}
我还想删除所有空格。所以输出将是
{{1,2,3},{4,5,6},{7,8,10}}
我编写了以下函数来执行此操作。
function tempsubst(m1)
m1 = matrixprint(m1)
if type(m1) ~="string" then return m1 end
m1 = string.gsub(m1,"\begin%{matrix%}","{{" )
m1 = string.gsub(m1,"\\","},{" )
m1 = string.gsub(m1,"%&","," )
m1 = string.gsub(m1,"end%{matrix%}","}}" )
m1= string.gsub(m1 , "%s+", "")
return m1
end
这有时有效,但有时无效。函数中一定有错误。我是lua的新手。代码可以更正吗?任何帮助将不胜感激。谢谢。
【问题讨论】:
-
有时它不起作用并不是最好的问题描述。提供示例输入和输出。
-
如果输入是从其他函数传递的,它会给出意外的输出。 tempsubst(strng) 有效,但 tempsubst(somefunction(x)) 无效。请注意, somefunction(x) 将字符串作为输出。我认为撇号可能会导致问题。
-
"literal string"内的所有反斜杠必须加倍。
标签: string replace lua substring substitution