0 / 0 / 0
Регистрация: 18.05.2014
Сообщений: 51
1

Обрезать строку до и после определенного слова

27.02.2017, 09:38. Показов 6781. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Как обрезать строку до 100 знаков до и после слова, например:
...текст текст текст слово текст текст....
Обрезаю текст следующим образом, но этот вариант не подходит
PHP
1
echo substr("текст бла бла бла", 0, 100);
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.02.2017, 09:38
Ответы с готовыми решениями:

Обрезать строку до определенного символа
Здравствуйте, подскажите как обрезать строку до определенного символа. Например есть строка...

Обрезать строку до определенного символа
Именно такое обрезание не нашел в инете Есть переменная: $string = 12345\45; Нужно отрезать...

Поиск определенного слова в строке и замена определенного символа после этого слова
Представим что у нас есть следующая строка: "Дядя Петя 10 раз ударил дядю Васю, но дядя Вася...

Как обрезать строку типа wchar_t* до определенного символа?
собственно вопрос в названии тему, запнулся казалось бы на самом простом, некогда не любил работу...

4
Эксперт PHP
3851 / 3196 / 1343
Регистрация: 01.08.2012
Сообщений: 10,820
27.02.2017, 13:07 2
С помощью strstr() узнаёте текущую позицию слова. Ну а дальше математика - смотрим, сколько символов слева, сколько справа и рассчитываем, откуда и докуда обрезать.
0
Фрилансер
Эксперт JSЭксперт HTML/CSSЭксперт PHP
1846 / 1342 / 599
Регистрация: 12.01.2011
Сообщений: 5,432
27.02.2017, 13:51 3
PHP
1
2
3
4
$slovo = 'obrazat'; //слово до и после которого обрезаем
$s = str_repeat('d',101).$slovo.str_repeat('p',101); //сделаем по 101 символу до и после искомого слова
echo $s.PHP_EOL; // дo
echo preg_replace("~.{100}(".$slovo.").{100}~ui",'$1',$s); //после
0
0 / 0 / 0
Регистрация: 18.05.2014
Сообщений: 51
27.02.2017, 16:31  [ТС] 4
Сделал по примеру, но не работает:
PHP
1
2
3
4
$slovo = 'Пять'; 
$s = 'Одни Два Три Четыре Пять Шесть Семь Восемь Девять'; 
echo $s.PHP_EOL; 
echo preg_replace("~.{1}(".$slovo.").{1}~ui",'$1',$s);
Добавлено через 1 час 10 минут
Получилось так
PHP
1
2
preg_match("/.{5}(Слово).{5}/si", $str, $matches);
echo $matches[0];
Есть проблема, если перед искомым словом присутствует текст более 5 знаков, то matches ничего не выводит, как исправить?
0
Фрилансер
Эксперт JSЭксперт HTML/CSSЭксперт PHP
1846 / 1342 / 599
Регистрация: 12.01.2011
Сообщений: 5,432
27.02.2017, 16:35 5
Цитата Сообщение от zhenia3003 Посмотреть сообщение
но не работает:
Работает, вы пробелы удалили.
Одни Два Три Четыре Пять Шесть Семь Восемь Девять
Одни Два Три ЧетыреПятьШесть Семь Восемь Девять
PHP
1
2
preg_match("/.{5,}(Слово).{5,}/si", $str, $matches);
echo $matches[0];
0
27.02.2017, 16:35
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.02.2017, 16:35
Помогаю со студенческими работами здесь

Обрезать слово после определенного символа
Записал в переменную второе слово строки var word = line.Split(' '); Если в слове имеется...

Обрезать (не округлить) число до определенного знака после запятой
подскажите как обрезать число до определённого знака - не округлить, а обрезать. 1.555666 в итоге...

Обрезать строку после последней запятой
Привет,как обрезать строку после первой запятой знаю,а как после последней нет string str =...

Обрезать строку после последнего символа в строке
Например есть строка с именем файла String fileName = "file.name.txt"; Как мне обрезать...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru