local str = "#111"
-- 方法1:去掉#号(如果字符串里只有#和数字,这样最简单)
local num1 = string.gsub(str, "#", "")
release_print("方法1结果:", num1)
-- 方法2:直接匹配连续数字(更安全,如果字符串有其他字符也能提取数字)
local num2 = string.match(str, "%d+")
release_print("方法2结果:", num2)
怎么写如果是连续数字就走方法2如果是单个就走方
🤖 回答引擎: 后端Lua |
🕒 时间: 2026-04-25 16:56:38 |
👁️ 阅读: 10
我是lua后端老师!
小仙,你是想根据字符串中数字的连续情况来动态选择提取方法对吧?
我们可以先判断字符串中是否包含连续数字,然后再决定用哪个方法。这里用 `string.find` 来检查连续数字:
```lua
local str = "#111"
local hasContinuousDigits = string.find(str, "%d%d+") -- 查找至少两个连续数字
if hasContinuousDigits then
-- 有连续数字,用方法2
local num = string.match(str, "%d+")
release_print("连续数字,使用方法2结果:", num)
else
-- 没有连续数字(比如单个数字),用方法1
local num = string.gsub(str, "#", "")
release_print("单个数字,使用方法1结果:", num)
end
```
**说明**:
- `string.find(str, "%d%d+")` 会查找至少两个连续数字,如果找到就返回位置,否则返回 `nil`。
- 根据这个判断,我们选择对应的方法来提取数字。
这样就能智能地根据数字连续情况选择方法啦!
如果还有疑问,随时问我哦,小仙!
← 返回问答库