![]() |
Модераторы: korob2001, ginnie |
![]() ![]() ![]() |
|
PyccHeBa |
|
|||
Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 6.10.2007 Репутация: нет Всего: нет |
Привет!
Нужно посчитать сколько чисел, разделенных запятыми содержит строка. Можно просто посчитать количество запятых и проверить нет ли подряд идущих запятых, или запятых через пробел(ы) Как это лучше сделать? |
|||
|
||||
amg |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1145 Регистрация: 3.8.2006 Где: Новосибирск Репутация: 38 Всего: 50 |
||||
|
||||
GoodBoy |
|
||||
![]() Главный джедай ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 3886 Регистрация: 8.1.2003 Где: КМВ Репутация: 2 Всего: 83 |
результат - 5
результат - 6 |
||||
|
|||||
PyccHeBa |
|
|||
Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 6.10.2007 Репутация: нет Всего: нет |
Супер!!!! Так коротко и просто!
![]() |
|||
|
||||
vadiml |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 310 Регистрация: 27.7.2007 Репутация: 5 Всего: 7 |
можно проще:
$str -- твоя стока my $count = ($str =~ tr/,/,/); # это кол-во запятых my $count = scalar(split /,/, $str); # это кол-во строк разделённых запятыми my @strings = split /,/, $str; # это массив строк, что были разделены запятыми |
|||
|
||||
PyccHeBa |
|
|||
Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 6.10.2007 Репутация: нет Всего: нет |
$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; } Почему так Это сообщение отредактировал(а) PyccHeBa - 27.11.2007, 05:50 |
|||
|
||||
amg |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1145 Регистрация: 3.8.2006 Где: Новосибирск Репутация: 38 Всего: 50 |
Проверь, не заканчивается ли строка пробелом.
А данных типа $qwe = '"Модераторы: korob2001, sharq",korob2001'; не может быть? (Результат 2). |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Perl" | |
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Perl: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |