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("无法解析输入的字符串")