Автор Тема: количество вхождений  (Прочитано 3253 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн _apple_

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 10
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
количество вхождений
« : 30 Марта 2005, 02:30:16 »
Парни, что то я туплю.
есть строка, нужно узнать количество вхождений определенного набора символов в эту строку.
например есть строка
$a = "дрл1лор3лор53лориь353";
нужно узнать сколько в ней букв [л|р]


спасибо

Оффлайн ondr

  • Модератор
  • Глобальный модератор
  • Старожил
  • *****
  • Сообщений: 440
  • +0/-0
  • 0
    • Просмотр профиля
количество вхождений
« Ответ #1 : 30 Марта 2005, 03:43:24 »
perldoc perlop в части tr///
0 OK, 0:1

Оффлайн Phoinix

  • RW
  • Ветеран
  • *****
  • Сообщений: 1097
  • +0/-0
  • 2
    • Просмотр профиля
    • http://phoinix.ucoz.ru
количество вхождений
« Ответ #2 : 30 Марта 2005, 18:51:50 »
ondr

Не совсем так, все-таки в части m//

my $a = "дрл1лор3лор53лориь353";
my $num = scalar($a =~m/[лр]/g);

Естественно должна быть локаль подключена

Оффлайн ondr

  • Модератор
  • Глобальный модератор
  • Старожил
  • *****
  • Сообщений: 440
  • +0/-0
  • 0
    • Просмотр профиля
количество вхождений
« Ответ #3 : 31 Марта 2005, 07:44:44 »
Phoinix
тоже perldoc perlop в части tr///

ex: $matches = $a =~ tr/лр//;

ps: и никакая локаль не нужна
0 OK, 0:1

Оффлайн Phoinix

  • RW
  • Ветеран
  • *****
  • Сообщений: 1097
  • +0/-0
  • 2
    • Просмотр профиля
    • http://phoinix.ucoz.ru
количество вхождений
« Ответ #4 : 31 Марта 2005, 13:12:44 »
ondr

Да, немного ошибся...

my $a = "дрл1лор3лор53лориь353";
my $match1 = $a =~tr/лр//;
my @match2 = $a =~ m/([лр])/;

print $match1,"\\n";
print scalar @match2,"\\n";

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28