Удалить текст по маске, но хитро. (новичок)

ZemonK

Новичок
Удалить текст по маске, но хитро. (новичок)

Имею текст на русском языке, со всеми знаками(точки,запятые,вопр,воскл).
Нужно удалить все фразы короче N символов до точки(вопр,воскл).
Т.е. оставить в тексте все предложения длинной более N.
Можно ли через preg_replace()? Через регулярное выражение...
(текст записан в одну строку, ну собственно я его так загружаю)
 

ZemonK

Новичок
Спасибо за информацию. Но реально новичок в PHP и как спозиционировать регулярку относительно строки понял.
Но, текст записан в одну строку и конец этой строки = конец текста.
Привязать конец строки к точке,воскл,вопр = я пока не умею. И как отсчитать обратно от точки до начала предложения...
Если бы запись была вида:
пред1
пред2
пред3
---небыло бы вопросов совсем.

Хотя бы подскажите как будет выглядеть регулярное выражение привязанное к концу каждого предложения, заканчивающегося точкой или воскл или вопр знаком...

Или же проще от начала каждого предложения(начинается с большой буквы всегда) и до точки(или! или?)

Простите, но не могу поймать мысль "через отрицание".

-~{}~ 21.11.09 21:25:

вот такое регулярное выражение:
^.*?[.]
получает первое предложение до точки из текста. Но предложений много...
 

Krishna

Продался Java
Простите, но не могу поймать мысль "через отрицание".
По первой ссылке, цитирую:
Если требуется указать символы, которые не входят в указанный набор, то используют символ ^ внутри квадратных скобок, например [^0-9] означает любой символ, кроме цифр.
получает первое предложение до точки из текста. Но предложений много...
А ты попробовал эту регулярку использовать в preg_replace() на тексте, где много предложений? Сначала попробуй. И почитай ман внимательнее.
 

nirex

Новичок
Не нужны тут регулярки, используй strpos которую оберни в ф-цию по поиску . ? !.
 
Сверху