Lua中如何获取中文字符串的长度?

google了一下,有下面的一段代码

local _, count = string.gsub(str, "[^\128-\193]", "")

其中的[^\128-\193]是什么意思?
或者还有其他方法吗?

阅读 10.8k
1 个回答

UTF编码里面,字符的第一个字节范围是0x00—0x7F(0-127)或者0xC2—0xF4(194-244),英文是单字节,所以都在这个范围内,中文是双字节,所以第一个在这个范围内,第二个在128到193内

[^\128-\193]是个模式,匹配128到193以外的字节,只会匹配的到字符的第一个字节,所以这个表达式就能计算出来字符总个数了。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进