有人可以用lua" regex"又模式?
如何将此正则表达式转换为string.match()
:ytplayer\.config\s*=\s*(\{.+?\});
的lua模式。您可以使用此网站来解释此正则表达式的作用:https://regex101.com/#pcre
基本上我想查找以ytplayer.config =
开头的字符串(注意等号前后可能的空格),然后是{
,直到我们打到分号。
ytplayer.config = {a lot of text, special characters and everything else which is possible...}};
这可能是一个结果。
目前我有string.match(s, "ytplayer.config%s=%s({.});")
,但它会返回一个完整的副本(使用kdiff检查)。
答案 0 :(得分:3)
看一下,这将返回您捕获的群组:
print(string.match("ytplayer.config = {a lot of text, special characters and everything else which is possible...}};", "^ytplayer%.config%s*=%s*({.-});"))
输出:
{a lot of text, special characters and everything else which is possible...}}
正则表达式为^ytplayer%.config%s*=%s*({.-});
。如果您不想检查字符串的开头,请从头开始删除^
。
请参阅this demo。
在Lua patterns中,%
escspes“魔术符号”。与*
类似,修饰符-
也匹配原始类的零个或多个字符。但是,它不是匹配最长的序列,而是匹配最短的序列。