Допустим, у меня есть следующая строкаУкажите количество совпадающих регулярных выражений групп с помощью Perl
my $val = "3.4 -22.352 4.0"
Цель является извлечение каждого десятичного числа самого по себе. На каждой стороне или между ними может быть любое количество пробелов. Также важно убедиться, что имеется ровно 3 числа, и никакой другой барахло. У меня есть что-то вроде этого, но это не работает:
my @parts = ($val =~ /((\s*[-+]?\d{1,3}\.\d{1,3}\s*)){3}/)
if (scalar(@parts) == 3) {
print "Validated!\n";
for my $i (@parts) {
print "$i\n";
}
}
По какой-то причине я получаю последнее дважды.
'расщепленные/\ S + /' удаляет конечные пробелы. 'split ''' также удаляет ведущие пробелы. Вероятно, лучший вариант. – ikegami