Lua string.gmatch 中的奇怪行为

问题描述 投票:0回答:1

我需要提取“\scalebox”字符串之前和之后的所有内容。我尝试过

local example = "sometext\\scalebox{0.74}"
for i in string.gmatch(example, "[^\\scalebox]+") do
  print(i)
end

我期待

sometext
{0.74}

但结果是

m
t
t
{0.74}

编辑:不是逃避角色问题,因为

local example = "sometextscalebox{0.74}"
for i in string.gmatch(example, "[^scalebox]+") do
  print(i)
end

导致相同的结果

有什么想法吗?

string lua pattern-matching match data-manipulation
1个回答
0
投票

我采取了稍微不同的方法(因为我看到的和你一样:-( )

cat user3204810.lua 
local instr = "sometext\\scalebox{0.74}"
local strip = "\\scalebox"

local res = string.gsub(instr, strip, "")

print( 'orig:', instr, " result:", res )

lua tt.lua 
orig:   sometext\scalebox{0.74}  result:    sometext{0.74}

一如既往,检查/测试/仔细检查所有建议

© www.soinside.com 2019 - 2024. All rights reserved.