Ok, je pense que j'ai trop compliqué les choses et maintenant je suis perdu. En fait, je dois traduire, de Perl à Lua:Expressions régulières dans Lua en utilisant .gsub()
my $mem;
my $memfree;
open(FILE, 'proc/meminfo');
while (<FILE>)
{
if (m/MemTotal/)
{
$mem = $_;
$mem =~ s/.*:(.*)/$1/;
}
}
close(FILE);
Jusqu'à présent, je l'ai écrit:
for Line in io.lines("/proc/meminfo") do
if Line:find("MemTotal") then
Mem = Line
Mem = string.gsub(Mem, ".*", ".*", 1)
end
end
Mais il est évidemment faux. Qu'est-ce que je ne reçois pas? Je comprends pourquoi il ne va pas, et ce qu'il est en train de faire et pourquoi quand je fais
print(Mem)
il retourne
.*
mais je ne comprends pas quelle est la bonne façon de le faire. Les expressions régulières me confondent!
ok, Je vous remercie. Cela a du sens maintenant, je pense juste que je ne serai jamais capable de comprendre pleinement les expressions régulières. – OddCore
Le groupe de capture ('(. *)') Est inutile. 'string.gsub (Mem,". *: "," ")' est suffisant. Il supprime tout jusqu'à la dernière ':'. –
@Mizard: Je viens de copier le code verbatim du code Perl, mais en effet cela devrait suffire, oui. – Joey