Lua string.match()(Corona SDK)

时间:2013-06-08 23:38:20

标签: string lua corona lua-patterns

我试图将auth代码从服务器响应中拉出来,如:

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

我正在使用lua / Corona;

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

我收到零回复,不知道我错了什么......有谁知道或有更好的主意?

WKR,

-Sean

2 个答案:

答案 0 :(得分:2)

角色?本身就是一个模式修饰符。这就是你获得nil结果的原因。使用%来逃避这一点。

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

print( str:match("GET /%?state=(%w+)&code=(%w+)") )

以下是工作输出:https://eval.in/33065


修改

以下是another example,但没有转义?字符。这只是为了阐述我的观点。 :)

答案 1 :(得分:1)

尝试使用它:

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