Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум Регулярные Выражения

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Помогите найти в тексте число
 
 автор: magic   (17.12.2008 в 02:32)   письмо автору
 
 

Добрый всем день (ночи)! Подскажите пожалуйста как можно найти в тексте нужное число. Например 2, надо найти именно 2 не 12, 22, 32 и не один раз, а столько сколько его есть в тексте. И еще потом надо посчитать сколько раз оно встретилось. Перепробывал все или у меня на ночь глядя голова уже не варит или хрен его знает. Всем заранее спасибо.

  Ответить  
 
 автор: valenok   (17.12.2008 в 03:07)   письмо автору
 
   для: magic   (17.12.2008 в 02:32)
 

Можно искать по маске пробел2пробел

  Ответить  
 
 автор: magic   (17.12.2008 в 13:25)   письмо автору
 
   для: valenok   (17.12.2008 в 03:07)
 

А как подсчитать количество найденого

  Ответить  
 
 автор: Лена   (17.12.2008 в 13:50)   письмо автору
 
   для: magic   (17.12.2008 в 13:25)
 


<?php
$text 
"Это 2 число 22 и только 2 нужно найти, а не 222";
preg_match_all("#\s2\s#"$text$out);
//print_r($out[0]);
$c count($out[0]);
print 
$c;
?>

  Ответить  
 
 автор: BinLaden   (17.12.2008 в 13:59)   письмо автору
 
   для: Лена   (17.12.2008 в 13:50)
 

Пожалуй, вместо \s лучше \b

  Ответить  
 
 автор: Лена   (17.12.2008 в 14:31)   письмо автору
 
   для: BinLaden   (17.12.2008 в 13:59)
 

Почему?

  Ответить  
 
 автор: BinLaden   (17.12.2008 в 15:02)   письмо автору
 
   для: Лена   (17.12.2008 в 14:31)
 

Если будет

<?php
$text 
"2 ...";
?>


То Ваш вариант не сработает.

  Ответить  
 
 автор: Лена   (17.12.2008 в 16:41)   письмо автору
 
   для: BinLaden   (17.12.2008 в 15:02)
 

Поняла. А если вот такой компромиссный вариант? Можно?

preg_match_all("#\b\s?2\s?\b#", $text, $out); 

  Ответить  
 
 автор: magic   (17.12.2008 в 15:28)   письмо автору
 
   для: Лена   (17.12.2008 в 13:50)
 

Огромное спасибо, все получилось, оказалось все намного проще, спасибо за код

  Ответить  
 
 автор: Valick   (17.12.2008 в 13:47)   письмо автору
 
   для: magic   (17.12.2008 в 02:32)
 

Как вариант:

<?php
$n
="2";
$text=explode(" ",$text);
foreach(
$text as $value) {
   if(
$value==$n) echo "ура!";
}
?>

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования