Помогите с регуляркой

luserz

Client
Регистрация
07.09.2016
Сообщения
114
Благодарностей
5
Баллы
18
Всем привет!

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

Пример текста: Какое-то предложение. Еще какое-то предложение. Еще какое-то предложение. Предложение с нужным словом.

Нужно получить предложение: Предложение с нужным словом.
 

orka13

Client
Регистрация
07.05.2015
Сообщения
2 175
Благодарностей
2 177
Баллы
113
Код:
[А-ЯЁ][^\r\nА-ЯЁ]*словом[^\r\nА-ЯЁ]*[\.\?\!]
Но на практике там еще другие символы могут конец предложение обозначать, поэтому прописал для трех:
Код:
[\.\?\!]
 
  • Спасибо
Реакции: kagorec и luserz

luserz

Client
Регистрация
07.09.2016
Сообщения
114
Благодарностей
5
Баллы
18
Код:
[А-ЯЁ][^\r\nА-ЯЁ]*словом[^\r\nА-ЯЁ]*[\.\?\!]
Но на практике там еще другие символы могут конец предложение обозначать, поэтому прописал для трех:
Код:
[\.\?\!]
Подскажите, а если у нужного слова разные окончания могут быть. Как сделать маску?
 

luserz

Client
Регистрация
07.09.2016
Сообщения
114
Благодарностей
5
Баллы
18
Подскажите, а если у нужного слова разные окончания могут быть. Как сделать маску?
[А-ЯЁ][^\r\nА-ЯЁ]*слов*[^\r\nА-ЯЁ]*[\.\?\!]
Вот это сработало. А правильно ли это с точки зрения регулярок?
 

orka13

Client
Регистрация
07.05.2015
Сообщения
2 175
Благодарностей
2 177
Баллы
113
неправильно. Правильно так (будет находить, если есть слово которое именно начинается с "слов" ):
Код:
[А-ЯЁ][^\r\nА-ЯЁ]*\bслов\w*\b[^\r\nА-ЯЁ]*[\.\?\!]
 
  • Спасибо
Реакции: luserz

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)