gpt4 book ai didi

regex - Lua 中日语的正则表达式

转载 作者:行者123 更新时间:2023-12-01 11:58:15 25 4
gpt4 key购买 nike

我想在 Lua(具体来说是 LuaTeX)中处理日语词汇。词汇表存储在要读取的文本文件中。在读取文件的每一行时,单词应该用正则表达式匹配(行写成:|かくせい |学生 |):

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 的新手,所以如果有更好的方法我会很高兴知道。

无论如何,有没有可能得到日语单词?

最佳答案

你不能为此使用 %a。它只匹配一个八位字节(依赖于语言环境,但通常只匹配一个以 ASCII 或 Latin-1 编码字母的字节。)

要匹配 UTF-8 编码的字母,您需要将它们分解为字节范围,如示例中的 here .

例如,UTF-8 编码的平假名的一些模式可能包括:

(\227\129[\129-\191])
(\227\130[\128-\160])

匹配所有 unicode 字母的完整模式列表(需要包括数百个子范围)会很笨拙。

关于regex - Lua 中日语的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4749578/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com