Lua:将 PCRE 转换为 Lua

Lua: Convert PCRE into Lua

我了解 Lua 没有 PCRE。如何将其转换为 Lua?

# Quote shell chars
$a =~ s/[[=12=]2-13-2\\#\?\`\(\)\{\}\[\]\^\*\<\=\>\~\|\; \"\!$\&\'2-7]/\$&/go;
# quote newline as '\n'                                                                             
$a =~ s/[\n]/'\n'/go;

有没有通用的转换器可以将任何PCRE转换成Lua?

您可以使用

local a = "[=10=]2[=10=]3[=10=]4[=10=]5[=10=]6[=10=]7[=10=]8[=10=]9012\\n"
res, _ = a:gsub("([[=10=]2-[=10=]91-6\#?`(){}%[%]^*<>=~|; \"!$&'0-5])", "\%1")
res, _ = res:gsub("\n", "'\n'")
print(res)

Lua code demo

请注意,在Lua模式中,\不是特殊字符,%用于替换特殊字符(如[)和\ddd 转义引用十进制,而不是八进制代码。