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模式中,\
不是特殊字符,%
用于替换特殊字符(如[
)和\ddd
转义引用十进制,而不是八进制代码。
我了解 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模式中,\
不是特殊字符,%
用于替换特殊字符(如[
)和\ddd
转义引用十进制,而不是八进制代码。