Lua string.sub 截取中文
本文最后更新于 32 天前。

UTF-8中的字符数

当字节数为1时,首字节范围:0000 0000-0111 1111,即0-127
当字节数为2时,首字节范围:1100 0000-1101 1111,即192-223
当字节数为3时,首字节范围:1110 0000-1110 1111,即224-239
当字节数为4时,首字节范围:1111 0000-1111 0111,即240-247


因此,当全部的内容为中文时,可以暂且认为:一个汉字占三个字节。

string.sub的定义和用法

字符串截取使用 sub() 方法。
string.sub() 用于截取字符串,原型为:

string.sub(s, i [, j])

其中,s为原始字符串,ij为开始和结束截取的字节位置。j默认为-1,即最后一个字符。

line.text_stripped

line.text_stripped函数可以在Aegisub中调出当前句截取标签后的完整文字。

纯汉字截取

Comment: 0,0:00:00.00,0:00:05.00,Default,,0,0,0,code once,c = -1  tab={}
Comment: 0,0:00:00.00,0:00:05.00,Default,,0,0,0,code syl,c = c+1 tab[c]=string.sub(line.text_stripped,(c-1)*3+1,(c-1)*3+3)
Comment: 0,0:00:00.00,0:00:05.00,Default,,0,0,0,template char,!c! !tab[c]! 原始字:
Comment: 0,0:00:00.00,0:00:05.00,Default,,0,0,0,karaoke,{\k1}你{\k1}的{\k1}声{\k1}音{\k1}不{\k1}能{\k1}忘{\k1}记

定义了一个空表tab,c从-1开始,用于计数字符。

标题:Lua string.sub 截取中文
作者:IKK
除转载和特殊声明外,所有文章采用 CC BY-NC-SA 4.0协议
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇