我正在尝试从服务器响应中提取授权码,如下所示:
GET /?state=authenticated&code=U946s9lHouBGWy8o45bXSRSXGzTqd0Ys HTTP/1.1
我正在使用lua/Corona;
string.match(request, "GET /?state=authenticated&code=([%w--_/.=?]+)")
我收到了无响应的nil,并不知道出了什么问题...有人知道或者有更好的想法吗?
wkr,
-sean
我正在尝试从服务器响应中提取授权码,如下所示:
GET /?state=authenticated&code=U946s9lHouBGWy8o45bXSRSXGzTqd0Ys HTTP/1.1
我正在使用lua/Corona;
string.match(request, "GET /?state=authenticated&code=([%w--_/.=?]+)")
我收到了无响应的nil,并不知道出了什么问题...有人知道或者有更好的想法吗?
wkr,
-sean
?
时,它会作为模式修饰符。这就是为什么你会得到nil
的结果。请使用%
对其进行转义。str = "GET /?state=authenticated&code=U946s9lHouBGWy8o45bXSRSXGzTqd0Ys HTTP/1.1"
print( str:match("GET /%?state=(%w+)&code=(%w+)") )
这里是工作输出:https://eval.in/33065
这里是另一个例子,与之前不同的是没有转义?
字符。这只是为了阐述我的观点。:)
Try to use this:
string.match(request, "GET /%?state=authenticated&code=([^ ]+)")
[^ ]
不等同于 %S
。
request:match'&code=(%S+)'
- Egor Skriptunoff