如何在 Lua 中检查 url 是否有效?

我想要检查 url 是否有效,在 Lua 中应该使用什么正确的正则表达式呢? 我尝试了类似这样的正则表达式

string.match('https://stackoverflow.com/', '[a-z]*:\/\/[^ >,;]*')

但是报错了

invalid escape sequence near ''[a-z]*:\/'

更新:

string.match('https://stackoverflow.com/', '[a-z]*://[^ >,;]*')

这是正确的答案

点赞
用户1442917
用户1442917

错误很明显:\/ 是一个无效的转义字符。在 Lua 模式中,/ 不是特殊字符(查看“幻术”字符列表),因此不需要转义。去掉转义字符应该就可以工作:string.match('https://stackoverflow.com/', '[a-z]*://[^ >,;]*')

2021-08-07 17:36:02