Odd*_*ore 6 regex string lua gsub
好吧,我想我把事情变得过于复杂了,现在我迷路了。基本上,我需要将其从 Perl 翻译为 Lua:
my $mem;
my $memfree;
open(FILE, 'proc/meminfo');
while (<FILE>)
{
if (m/MemTotal/)
{
$mem = $_;
$mem =~ s/.*:(.*)/$1/;
}
}
close(FILE);
Run Code Online (Sandbox Code Playgroud)
到目前为止我已经写了这个:
for Line in io.lines("/proc/meminfo") do
if Line:find("MemTotal") then
Mem = Line
Mem = string.gsub(Mem, ".*", ".*", 1)
end
end
Run Code Online (Sandbox Code Playgroud)
但这显然是错误的。我没有得到什么?我明白为什么它是错误的,它实际上在做什么,以及为什么我这样做
print(Mem)
Run Code Online (Sandbox Code Playgroud)
它返回
.*
Run Code Online (Sandbox Code Playgroud)
但我不明白什么是正确的方法。正则表达式让我困惑!
Lua 不使用正则表达式。请参阅 Lua 编程,第 20.1节及后续部分,了解 Lua 中模式匹配和替换的工作原理以及它与正则表达式的不同之处。
\n\n在您的情况下,您将完整的字符串 ( .*) 替换为文字字符串.*\xe2\x80\x93 ,因此您刚刚返回也就不足为奇了.*。
.*:(.*)原来的正则表达式用冒号后面的部分替换了任何包含冒号( )的内容,因此 Lua 中的类似语句可能是
string.gsub(Mem, ".*:(.*)", "%1")\nRun Code Online (Sandbox Code Playgroud)\n