Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

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

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

 

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

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

тема: Необходимо регулярным выражением вырезать первые 2 слова
 
 автор: Night_Charter   (20.05.2006 в 13:11)   письмо автору
 
 

Есть строка в которой такой текст:

Test work home dog

Необходимо регулярным выражением вырезать первые 2 слова)

   
 
 автор: CrazyAngel   (20.05.2006 в 13:18)   письмо автору
 
   для: Night_Charter   (20.05.2006 в 13:11)
 

Почему регулярным?

Можно строку разрезать на массив функцией explode и в качестве разделителя будет пробел =)

   
 
 автор: cheops   (20.05.2006 в 17:48)   письмо автору
 
   для: Night_Charter   (20.05.2006 в 13:11)
 

Можно воспользоваться следующим скриптом
<?php
  $contents 
"Test work home dog";
  
$pattern "|^([\w\d]+[\s]+[\w\d]+)|is";
  
preg_match($pattern$contents$out);
  echo 
$out[1]."<br>";
?>

   
 
 автор: CrazyAngel   (20.05.2006 в 18:33)   письмо автору
 
   для: cheops   (20.05.2006 в 17:48)
 

Но это же хуже по скорости ....... чем explode =)

   
 
 автор: mmaks   (20.05.2006 в 20:12)   письмо автору
 
   для: Night_Charter   (20.05.2006 в 13:11)
 

А если просто

$slovo1 = strtok( $str, " ");
$slovo2 = strtok(" ");

Регулярные выражения ресурсы хавают....

   
 
 автор: Night_Charter   (23.05.2006 в 16:59)   письмо автору
 
   для: mmaks   (20.05.2006 в 20:12)
 


$slovo1 = strtok( $str, " "); 
$slovo2 = strtok(" "); 

Так оно выводит только первое слово из строки!
А мне надо 2. В строке может быть от 5 до 10 слов. Мне надо вывсети первые два.
Разделитель между словами плюсик +

   
 
 автор: Владимир22   (23.05.2006 в 18:18)   письмо автору
 
   для: Night_Charter   (20.05.2006 в 13:11)
 


<?
$file_array 
file("файл.тxt");  //нужный файл
$string $file_array[0]; // нужная строка в файле - здесь первая
$words="2"# количество считываемых слов
$array=explode(" ",$string);
for(
$i=0;$i<$words;$i++)
{
$new_string.=$array[$i]." ";
}
$need=trim($new_string);
echo 
$need
?> 


Не проверял, но должно работать.

   
 
 автор: Night_Charter   (24.05.2006 в 12:05)   письмо автору
 
   для: Владимир22   (23.05.2006 в 18:18)
 

Подскажите пожалуйста что-нибудь попроще, без файлов!
Напоминаю, что разделитель между словами: + плюсик

   
 
 автор: cheops   (24.05.2006 в 12:12)   письмо автору
 
   для: Night_Charter   (24.05.2006 в 12:05)
 

Почему +, если в изначальной строке пробел?

   
 
 автор: kasmanaft   (24.05.2006 в 18:28)   письмо автору
 
   для: Night_Charter   (24.05.2006 в 12:05)
 

а чем не подошло рег выражение cheops'а ?
если между словами "+" , можно немного подправить рег. выр-е:

<?php
  $contents 
"Test+work+home+dog";
  
$pattern "|^([\w\d]+)\++([\w\d]+)|is";
  
preg_match($pattern$contents$out);
  echo 
$out[1]." ".$out[2];
?>

   
Rambler's Top100
вверх

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