Я пытаюсь понять, в чем разница между string.find и string.match в Lua.Мне кажется, что оба находят образец в строке.Но в чем разница?И как я могу использовать каждый?Скажем, если бы у меня была строка «Дисковое пространство: 3000 кБ», и я хотел извлечь из нее «3000».
РЕДАКТИРОВАТЬ: Хорошо, я думаю, что слишком усложнил вещи, и теперь я потерян.По сути, мне нужно перевести это с Perl на Lua:
my $mem;
my $memfree;
open(FILE, 'proc/meminfo');
while (<FILE>)
{
if (m/MemTotal/)
{
$mem = $_;
$mem =~ s/.*:(.*)/$1/;
}
elseif (m/MemFree/)
{
$memfree = $_;
$memfree =~ s/.*:(.*)/$1/;
}
}
close(FILE);
Пока я написал это:
for Line in io.lines("/proc/meminfo") do
if Line:find("MemTotal") then
Mem = Line
Mem = string.gsub(Mem, ".*", ".*", 1)
end
end
Но это, очевидно, неправильно.Что я не получаю?Я понимаю, почему это неправильно, и что он на самом деле делает и почему, когда я делаю
print(Mem)
, он возвращает
.*
, но я не понимаю, каков правильный способсделай это.Регулярные выражения смущают меня!