string.gsub参数中包含%符号的问题

在使用lua字符串替换函数时遇到一个问题,目标串中包含%时,替换的结果和预期不一致,比如:
local source= [[你好,你叫什么名字]]
local aim = string.gsub(source,’你好’,’xx’)
预期结果是“xx,你叫什么名字”
由于xx是动态的,每次的结果是其他地方传过来的,如果xx的值为“我好%”,期望的结果是“我好%,你叫什么名字”,但实际结果是“我好”。因为lua里的字符串函数基于正则实现的,%被理解为匹配所有的字符,于是想到对%进行转义,从lua的参考手册中发现%是转义字符,”%%”表示符号’%’,于是代码修改为:
local source= [[你好,你叫什么名字]]
xx = string.gsub(xx,’%%’,’%%%%’)
local aim = string.gsub(source,’你好’,’xx’)
问题解决
资料链接:http://www.lua.org/pil/20.2.html
部分内容:
Some characters, called magic characters, have special meanings when used in a pattern. The magic characters are

( ) . % + - * ? [ ^ $

The character %´ works as an escape for those magic characters. So, '%.' matches a dot; '%%' matches the character%´ itself.

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值