Lua string.match()(Corona SDK)

Lua string.match()(Corona SDK),string,lua,coronasdk,lua-patterns,String,Lua,Coronasdk,Lua Patterns,我试图从服务器响应中提取身份验证代码,如下所示: GET/?state=authenticated&code=U946s9lHouBGWy8o45bXSRSXGzTqd0Ys HTTP/1.1 我正在使用lua/Corona string.match(request, "GET /?state=authenticated&code=([%w--_/.=?]+)") 我的回答是零,不知道我做错了什么……有人知道或者有更好的想法吗 wkr -sean字符本身充当模式修改器。这就是为什么会得

我试图从服务器响应中提取身份验证代码,如下所示:

GET/?state=authenticated&code=U946s9lHouBGWy8o45bXSRSXGzTqd0Ys HTTP/1.1

我正在使用lua/Corona

string.match(request, "GET /?state=authenticated&code=([%w--_/.=?]+)")
我的回答是零,不知道我做错了什么……有人知道或者有更好的想法吗

wkr


-sean

字符本身充当模式修改器。这就是为什么会得到
nil
结果。使用
%
来逃避此操作

str = "GET /?state=authenticated&code=U946s9lHouBGWy8o45bXSRSXGzTqd0Ys HTTP/1.1"

print( str:match("GET /%?state=(%w+)&code=(%w+)") )
以下是工作输出:


编辑 这里也是同样的,没有转义
字符。这只是为了阐述我的观点。:)

尝试使用以下方法:

string.match(request, "GET /%?state=authenticated&code=([^ ]+)")

身份验证代码总是只有字母和数字吗?如果是的话,你可以用一个更简单的正则表达式。我想是的。我实际上不理解regex,从另一个例子中得到了这个片段,但这个例子正是我想要做的。任何帮助都是值得的。我想我可以用主播搜索之类的。我也是Lua的新手,所以不知道工具箱里有什么。thx预先猎人
请求:匹配'&code=(%S+)'
谢谢!我累了:localcode=string.match(请求,“GET/?state=authenticated&code=([^]+)”),但返回时代码为零。我想我一定在做别的事情wrong@user2467301:查看我的编辑。我没有逃过问号3<代码>[^]与
%S
不同。谢谢你的编辑谢谢你,波特92,你搞定了。建议在哪里可以了解我现在在做什么?:)@user2467301 Lua使用模式而不是普通正则表达式。您可以在[#irc上的lua频道]中使用或询问一些基本查询(irc://irc.freenode.net/lua)中详细描述了模式,并在中的大部分章节中介绍。它们功能强大,但不如其他地方的正则表达式工具那么完整。