|
|
|
| Есть строка в которой такой текст:
Необходимо регулярным выражением вырезать первые 2 слова) | |
|
|
|
|
|
|
|
для: Night_Charter
(20.05.2006 в 13:11)
| | Почему регулярным?
Можно строку разрезать на массив функцией explode и в качестве разделителя будет пробел =) | |
|
|
|
|
|
|
|
для: 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>";
?>
|
| |
|
|
|
|
|
|
|
для: cheops
(20.05.2006 в 17:48)
| | Но это же хуже по скорости ....... чем explode =) | |
|
|
|
|
|
|
|
для: Night_Charter
(20.05.2006 в 13:11)
| | А если просто
$slovo1 = strtok( $str, " ");
$slovo2 = strtok(" ");
|
Регулярные выражения ресурсы хавают.... | |
|
|
|
|
|
|
|
для: mmaks
(20.05.2006 в 20:12)
| |
$slovo1 = strtok( $str, " ");
$slovo2 = strtok(" ");
|
Так оно выводит только первое слово из строки!
А мне надо 2. В строке может быть от 5 до 10 слов. Мне надо вывсети первые два.
Разделитель между словами плюсик + | |
|
|
|
|
|
|
|
для: 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;
?>
|
Не проверял, но должно работать. | |
|
|
|
|
|
|
|
для: Владимир22
(23.05.2006 в 18:18)
| | Подскажите пожалуйста что-нибудь попроще, без файлов!
Напоминаю, что разделитель между словами: + плюсик | |
|
|
|
|
|
|
|
для: Night_Charter
(24.05.2006 в 12:05)
| | Почему +, если в изначальной строке пробел? | |
|
|
|
|
|
|
|
для: 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];
?>
|
| |
|
|
|