gpt4 book ai didi

string - Lua string.match() 问题

转载 作者:行者123 更新时间:2023-12-01 06:15:51 25 4
gpt4 key购买 nike

我想匹配几行字符串和一些数字。线条看起来像

"  Code                                             : 75.570 "

"  ..dll                                   :          13.559       1"

"  ..node                                    :  4.435    1.833    5461"

"  ..NavRegions                                     :  0.000         "

我想要类似的东西

local name, numberLeft, numberCenter, numberRight = line:match("regex");

但我对字符串匹配很陌生。

最佳答案

此模式适用于所有情况:

%s*([%w%.]+)%s*:%s*([%d%.]+)%s*([%d%.]*)%s*( [%d%.]*)

简短说明:[] 生成一组字符(例如小数)。最后一个数字使用 [set]* 所以空匹配也是有效的。这样,未找到的数字将有效地分配为 nil

注意在模式中使用 + - * 的区别。更多关于图案 in the Lua reference .

这将匹配点和小数的任意组合,因此之后尝试使用 tonumber() 将其转换为数字可能会很有用。

部分测试代码:

s={
" Code : 75.570 ",
" ..dll : 13.559 1",
" ..node : 4.435 1.833 5461",
" ..NavRegions : 0.000 "
}
for k,v in pairs(s) do
print(v:match('%s*([%w%.]+)%s*:%s*([%d%.]+)%s*([%d%.]*)%s*([%d%.]*)'))
end

关于string - Lua string.match() 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6243829/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com