Модераторы: korob2001, ginnie
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> как лучше посчитать определнные символы в строке? 
:(
    Опции темы
PyccHeBa
Дата 20.11.2007, 10:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 11
Регистрация: 6.10.2007

Репутация: нет
Всего: нет



Привет!
Нужно посчитать сколько чисел, разделенных запятыми содержит строка.  Можно просто посчитать количество запятых и проверить нет ли подряд идущих запятых, или запятых через пробел(ы)


Как это лучше сделать?
PM MAIL   Вверх
amg
Дата 20.11.2007, 11:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1145
Регистрация: 3.8.2006
Где: Новосибирск

Репутация: 38
Всего: 50



Цитата(PyccHeBa @  20.11.2007,  10:52 Найти цитируемый пост)
посчитать сколько чисел, разделенных запятыми содержит строка
Немного непонятно. Если не пойдет, уточните вопрос.
Код

$count++ while $str =~ /(?:^|(?<=[\s,]))\d+(?:(?=[\s,])|$)/g;

PM MAIL   Вверх
GoodBoy
Дата 20.11.2007, 17:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Главный джедай
****


Профиль
Группа: Модератор
Сообщений: 3886
Регистрация: 8.1.2003
Где: КМВ

Репутация: 2
Всего: 83



Код
$qwe = '1232,4556,456,23345,gys,gggg,345234,gege';
@qwe = $qwe =~ /\d+(,|$)/g;
print scalar @qwe;

результат - 5

Код
$qwe = '1232,4556,456,23345,gys,gggg,345234,gege,123';
@qwe = $qwe =~ /\d+(,|$)/g;
print scalar @qwe;

результат - 6


--------------------
Чем дальше в лес, тем толще партизаны...

Цитата(igorold @  1.5.2016,  17:40 Найти цитируемый пост)
Индейцы не обратили внимания на поток беженцев из Европы… Теперь они живут в резервациях. 
PM MAIL   Вверх
PyccHeBa
Дата 24.11.2007, 21:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 11
Регистрация: 6.10.2007

Репутация: нет
Всего: нет



Супер!!!! Так коротко и просто! smile
PM MAIL   Вверх
vadiml
Дата 25.11.2007, 20:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 310
Регистрация: 27.7.2007

Репутация: 5
Всего: 7



можно проще:
$str -- твоя стока
my $count = ($str =~ tr/,/,/); # это кол-во запятых
my $count = scalar(split /,/, $str); # это кол-во строк разделённых запятыми
my @strings = split /,/, $str; # это массив строк, что были разделены запятыми
PM MAIL Jabber   Вверх
PyccHeBa
Дата 27.11.2007, 05:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 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
PM MAIL   Вверх
amg
Дата 27.11.2007, 12:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1145
Регистрация: 3.8.2006
Где: Новосибирск

Репутация: 38
Всего: 50



Проверь, не заканчивается ли строка пробелом.


А данных типа
$qwe = '"Модераторы: korob2001, sharq",korob2001';
не может быть? (Результат 2).
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Perl"
korob2001
sharq
  • В этом разделе обсуждаются общие вопросы по языку Perl
  • Если ваш вопрос относится к системному программированию, задавайте его здесь
  • Если ваш вопрос относится к CGI программированию, задавайте его здесь
  • Интерпретатор Perl можно скачать здесь ActiveState, O'REILLY, The source for Perl
  • Справочное руководство "Установка perl-модулей", можно скачать здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Perl: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0699 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.