Godot 解析数据

print("物品名称: %s, 数量: %d" % [item_name, item_num])

支持解析 "数字名字" "名字数字"

数字名字   名字数字

# 假设 msg 是输入的字符串
var msg = "兑换安琪拉200"

# 1. 去除固定前缀  “销毁”
var trim_msg = msg.replace("销毁", "").strip_edges()

# 2. 使用正则表达式解析
var regex = RegEx.new()
# 匹配物品名称和可选的数字(数量),数字可以出现在字符串的开头或结尾
regex.compile("^(\\d*)\\s*([\\s\\S]+?)\\s*(\\d*)$")

var result = regex.search(trim_msg)

# 3. 处理结果
if result:
    var item_name = result.get_string(2) # 获取物品名称
    var item_num_str = result.get_string(1) + result.get_string(3) # 获取数量字符串,可能来自字符串的开头或结尾
    var item_num = item_num_str.to_int() # 将数量字符串转换为整数
    
    if item_num == 0:
        item_num = 1 # 如果没有提供数量或解析失败,默认为 1

    # 发送信号或进行其他处理
    print("物品名称: %s, 数量: %d" % [item_name, item_num])  
else:
    print("无法解析输入的字符串")
posted @ 2024-03-22 00:25  专心Coding的程侠  阅读(69)  评论(0编辑  收藏  举报