【发布时间】:2020-10-20 00:21:00
【问题描述】:
尝试修改魔兽插件的代码:https://github.com/chocochaos/GMGenie 以获取更多信息
文字是这样的:
cff00ff00Ticket: 6969. cff00ff00Created by: Me cff00ff00Created: 57m32s ago cff00ff00Last change: 57m32s ago cff00ff00Ticket Message: [asd] cff00ff00Ticket Response: [answer 1
answer 2
answer3
]
我想得到最后一个括号 ([,]) 之间的行。此代码仅获得第一个答案,但忽略其他 2 个。
local response = string.match(arg1, "%|cff00ff00Ticket%sResponse%|r:%s%[(.*)");
另一个代码也在工作:获取另一个变量:
local ticketId, name, createStr, lastModifiedStr, rest = string.match(arg1, "^%|cffaaffaaTicket%|r:%|cffaaccff%s([0-9]+).%|r%s%|cff00ff00Created%sby%|r:%|cff00ccff%s(.+)%|r%s%|cff00ff00Created%|r:%|cff00ccff%s([a-zA-Z0-9%s]+)%sago%|r%s%|cff00ff00Last%schange%|r:%|cff00ccff%s([a-zA-Z0-9%s]+)%sago%|r%s(.*)$");
我知道行之间的分隔符是“\n”。
我尝试修改 (.*) 模式以添加所有行,直到最后一个括号 (]),使用这个:
local response, response2 = string.match(arg1, "%|cff00ff00Ticket%sResponse%|r:%s%\[(.*)+");
但它不起作用。我不知道什么更好:尝试获取同一字符串中的所有字符并使用 gsub 进行修剪,或者尝试获取任何类型的字符串数组。你能帮帮我吗?
【问题讨论】:
-
您需要将它们作为单独的字符串还是单个多行字符串?试试
local response = string.match(arg1, ".*%[(.*)]");
标签: lua match lua-patterns