Lua中针对日语的正则表达式
2013-11-4 20:20:55
收藏:0
阅读:162
评论:2
我想用Lua (特别是LuaTeX)处理日语词汇。词汇存储在一个文本文件中需要读取。在读取文件的每一行时,需要通过正则表达式匹配单词(行的格式如下:| がくせい | student |
):
function readFile(fn)
local file = assert(io.open(fn, "r"))
local contents = file:read("*a")
file:close()
return contents
end
function processTest(contents)
for line in contents:gmatch("%a+") do
print(line)
end
end
a = readFile("vocabulary.org")
processTest(a)
问题在于只有英语单词被打印出来了:
student
我必须提到我是Lua和LuaTeX的新手,所以如果有更好的方法,我会很高兴知道。
无论如何,有没有可能得到日语单词?
原文链接 https://stackoverflow.com/questions/4749578
点赞
stackoverflow用户12048
你不能使用 %a
来匹配这个。它只能匹配一个八位字节(与本地环境相关,但通常只包含 ASCII 或 Latin-1 编码的字母)。
要匹配 UTF-8 编码的字母,需要将它们分解为字节范围,就像这个 示例 中的示例一样。
例如,一些 UTF-8 编码的平假名的模式可能包括:
(\227\129[\129-\191])
(\227\130[\128-\160])
匹配 所有 Unicode 字母的完整模式列表(需要包含数百个子范围)将变得难以处理。
2011-01-20 18:53:50
评论区的留言会收到邮件通知哦~
推荐文章
- 如何在roblox studio中1:1导入真实世界的地形?
- 求解,lua_resume的第二次调用继续执行协程问题。
- 【上海普陀区】内向猫网络招募【Skynet游戏框架Lua后端程序员】
- SF爱好求教:如何用lua实现游戏内调用数据库函数实现账号密码注册?
- Lua实现网站后台开发
- LUA错误显式返回,社区常见的规约是怎么样的
- lua5.3下载库失败
- 请问如何实现文本框内容和某个网页搜索框内容连接,并把网页输出来的结果反馈到另外一个文本框上
- lua lanes多线程使用
- 一个kv数据库
- openresty 有没有比较轻量的 docker 镜像
- 想问一下,有大佬用过luacurl吗
- 在Lua执行过程中使用Load函数出现问题
- 为什么 neovim 里没有显示一些特殊字符?
- Lua比较两个表的值(不考虑键的顺序)
- 有个lua简单的项目,外包,有意者加微信 liuheng600456详谈,最好在成都
- 如何在 Visual Studio 2022 中运行 Lua 代码?
- addEventListener 返回 nil Lua
- Lua中获取用户配置主目录的跨平台方法
- 如何编写 Lua 模式将字符串(嵌套数组)转换为真正的数组?
我不是Lua大师,但我认为你可能运气不佳。Lua不“本地”消耗Unicode文件,它只把它读到的当作一系列字节而不进行任何解释。特别是,你的gmatch()调用不太可能做你想要的。
最近在邮件列表上有一个关于i18n(国际化)的大讨论在这里。这里的讨论在这里也可能有所帮助。