| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > PHP: Общие вопросы > Вывод первого предложения |
| Автор: Guedda 7.9.2010, 13:54 |
| Добрый день, уважаемые. Столкнулся со следующей проблемой. Я делаю поиск по базе, и мне возвращается результат. Так вот мне необходимо отфильтровать результат так, чтобы выводилость ТОЛЬКО первое предложение, в котором есть эта поисковая строка. Например: Текст: Мама мыла раму. Рама была холодная, но очень мокрая. Не хочу я, чтобы рама мыла меня. Поисковой запрос: рама Результат: Рама была холодная, но очень мокрая. Как это реализовать? Мозг застопорился, не может найти решение. Может Вы что подскажете? Заранее благодарен за ответы. |
| Автор: enoff 7.9.2010, 14:30 | ||
Если данные уже взяты из базы, то
И возможный пробел убрать в начале. Ну или чуть изменить рв. |
| Автор: CruorVult 7.9.2010, 14:36 | ||
+ Кроме точки еще может быть "!" и "?"
|
| Автор: enoff 7.9.2010, 14:37 |
| Еще добавить другие знаки препинания, которыми заканчивается предложение. Добавлено через 16 секунд Не успел... |
| Автор: enoff 7.9.2010, 14:57 |
| CruorVult, метасимволы в символьном классе не нужно экранировать. |
| Автор: CruorVult 7.9.2010, 15:08 |
| enoff, буду знать |
| Автор: ksnk 7.9.2010, 15:45 |
| предложение заканчивается точкой(восклицательным, вопросительным, многоточием) за которым следует пробел. Инициалы терять не хочется... |
| Автор: enoff 7.9.2010, 19:24 |
| ksnk, между И. О. пробел не ставится? |
| Автор: ksnk 7.9.2010, 21:48 |
| Хм... вродк как http://www.gramota.ru/spravka/buro/search_answer/?page=7&s=%E8%ED%E8%F6%E8%E0%EB%FB, по правилам инициалы пишутся с разбивкой через пробел, так что все равно потеряются. Хотя можно не считать концом строки слово, состоящее из одной буквы с точкой на конце ;) Правда сочинить такую регулярку я пока что-то не смог :( |
| Автор: enoff 7.9.2010, 22:22 | ||
Только все равно немного не верно, "ААА!" в конце предложения будет считаться инициалом. Хотя предложение на заглавную букву наврятли будет заканчиваться... |