Lua模式中为何不能直接输入百分比符号(%)?
- 内容介绍
- 文章标签
- 相关推荐
本文共计363个文字,预计阅读时间需要2分钟。
在Lua脚本中,你使用了以下代码,但每次执行都会导致软件崩溃:
luafmt_url_map=string.gsub(fmt_url_map, '/', '/+')
你希望将文本中所有的`/`替换为`/`,但如果你删除了`+`,它就不会崩溃。你弄错了什么?
错误在于你使用了`string.gsub`函数时,没有正确处理替换模式。在Lua中,`string.gsub`的第三个参数是一个可选的替换模式,它可以是字符串或函数。在你的代码中,你试图将所有的`/`替换为`/`,但多了一个`+`。
正确的替换模式应该是:
luafmt_url_map=string.gsub(fmt_url_map, '/', '/ ')
这样,每个`/`都会被单个`/ `替换,而不是两个`/`。如果你删除了`+`,代码将不会崩溃,因为`string.gsub`会替换每个匹配项,而不是重复替换。
我在Lua脚本中有这一行,每次都会崩溃我的软件:fmt_url_map = string.gsub( fmt_url_map, '%2F','/' )
我想将文本中出现的所有/出现次数替换为/.
如果我删除%,它不会崩溃.
我究竟做错了什么 ?
%是Lua模式中的特殊符号.它用于表示某些字符集(称为字符类).例如,%a代表任何字母.如果你想要字面上匹配%,你需要使用%%.有关详细信息,请参阅Lua参考手册的 this section.我怀疑你遇到了问题,因为%F不是一个字符类.本文共计363个文字,预计阅读时间需要2分钟。
在Lua脚本中,你使用了以下代码,但每次执行都会导致软件崩溃:
luafmt_url_map=string.gsub(fmt_url_map, '/', '/+')
你希望将文本中所有的`/`替换为`/`,但如果你删除了`+`,它就不会崩溃。你弄错了什么?
错误在于你使用了`string.gsub`函数时,没有正确处理替换模式。在Lua中,`string.gsub`的第三个参数是一个可选的替换模式,它可以是字符串或函数。在你的代码中,你试图将所有的`/`替换为`/`,但多了一个`+`。
正确的替换模式应该是:
luafmt_url_map=string.gsub(fmt_url_map, '/', '/ ')
这样,每个`/`都会被单个`/ `替换,而不是两个`/`。如果你删除了`+`,代码将不会崩溃,因为`string.gsub`会替换每个匹配项,而不是重复替换。
我在Lua脚本中有这一行,每次都会崩溃我的软件:fmt_url_map = string.gsub( fmt_url_map, '%2F','/' )
我想将文本中出现的所有/出现次数替换为/.
如果我删除%,它不会崩溃.
我究竟做错了什么 ?
%是Lua模式中的特殊符号.它用于表示某些字符集(称为字符类).例如,%a代表任何字母.如果你想要字面上匹配%,你需要使用%%.有关详细信息,请参阅Lua参考手册的 this section.我怀疑你遇到了问题,因为%F不是一个字符类.
