3

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

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

我正在使用 lua/Corona;

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

我得到一个零回应,不知道我做错了什么......有人知道或有更好的主意吗?

wkr,

-肖恩

4

2 回答 2

2

字符?本身充当模式修饰符。这就是你得到nil结果的原因。使用 a%来逃避这一点。

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

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

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


编辑

这是另一个相同的示例,没有转义?字符。这只是为了阐述我的观点。:)

于 2013-06-08T23:46:14.687 回答
1

尝试使用这个:

string.match(request, "GET /%?state=authenticated&code=([^ ]+)")
于 2013-06-08T23:46:58.300 回答