preg_replace удалить слово. Помогите с регуляркой

Статус
В этой теме нельзя размещать новые ответы.

sone

Создатель
Регистрация
11 Апр 2008
Сообщения
10
Реакции
0
Приветствую.
Прошу помощи, нужно удалить слово из предложения.

"нени Тогда, когда мне"

Слово нени может быть любым кириллическим с любым кол-вом букв (либо несколько слов), с него начинается предложение, всегда с прописной, после него стоит пробел и Заглавная буква другого слова. нени нужно удалить вместе с пробелом, либо удалить все до первой заглавной буквы.
С простыми регулярками разбирался, но тут что-то никак.
 
Че за "нени"?
 
Собственно, чтоб не было таких вопросов, это недослово нужно убрать )
Есть предложения, которые начинаются с конца предыдущего, т.е. "нени" - это кусок какого-то слова. Подобных много, в основном набор букв. Само предложение начинается с первой большой буквы, все, что до него с маленькой - лишнее.
 
Напиши пример, что есть и что нужно сделать.
 
Есть много строк с текстом, например:
PHP:
$texp = "ека их нет Тогда, когда мне нужно, их всегда нет.";
$zamtexp = preg_replace("(/(а-я)/","",$texp);
Требуется регулярка, которой эти слова "ека их нет " - лишние, заменить на пустое место "". В других случаях эти слова могут быть любыми, но начинаются всегда с маленькой буквы, а заканчиваются большой буквой следующего предложения, в данном примере буква "Т" от слова "Тогда".


Решение найдено:
/[^А-ЯЁЧЙ]+(?=[А-ЯЕЧЙ])/
 
Я так понял, ты пропустил точку перед "Тогда" в своем примере. Хотя точка и не гарантирует конец предложения, как впрочем, и Большая буква не гарантирует его начала.
Пример: "проживающий по ул. Ленина 15. Следовательно не"

Короче, никто ничего не гарантирует, на то они и регулярные выражения. :) Так что, надо понимать все ограничения данного метода.

Учитывая, что предложение может заканчиваться точкой или восклицательным знаком, регулярка может выглядить например так:

preg_replace('/^.*?[\.!]+\s*?([A-ZА-ЯЁ])/', '\1',$texp);
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху