Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Perl: Общие вопросы > как лучше посчитать определнные символы в строке? |
Автор: PyccHeBa 20.11.2007, 10:52 |
Привет! Нужно посчитать сколько чисел, разделенных запятыми содержит строка. Можно просто посчитать количество запятых и проверить нет ли подряд идущих запятых, или запятых через пробел(ы) Как это лучше сделать? |
Автор: amg 20.11.2007, 11:18 | ||
Немного непонятно. Если не пойдет, уточните вопрос.
|
Автор: GoodBoy 20.11.2007, 17:52 | ||||
результат - 5
результат - 6 |
Автор: PyccHeBa 24.11.2007, 21:35 |
Супер!!!! Так коротко и просто! ![]() |
Автор: vadiml 25.11.2007, 20:35 |
можно проще: $str -- твоя стока my $count = ($str =~ tr/,/,/); # это кол-во запятых my $count = scalar(split /,/, $str); # это кол-во строк разделённых запятыми my @strings = split /,/, $str; # это массив строк, что были разделены запятыми |
Автор: PyccHeBa 27.11.2007, 05:33 |
$qwe = '1232,4556,456,23345,gys,gggg,345234,gege'; @qwe = $qwe =~ /\d+(,|$)/g; print scalar @qwe; хороший метод, но почемуто есть сбои например $qwe ='"2007-02-19 15:15:00",4900,0,536.9,1.857,"NAN",14.36,0,0'; @qwe = $qwe =~ /\d+(,|$)/g; print scalar @qwe; выдает 7. Все отлично, Но у меня в программе выдает стабильно 6 Скрипт примерно такой while(<MYINPUTFILE>) { my($line) = $_; chomp($line); @qwe = $line =~ /\d+(,|$)/g; } Почему так |
Автор: amg 27.11.2007, 12:17 |
Проверь, не заканчивается ли строка пробелом. А данных типа $qwe = '"Модераторы: korob2001, sharq",korob2001'; не может быть? (Результат 2). |