muzikant777
@muzikant777
PHP/Vue разработчик

Как составить RegExp, выделяющий первое предложение в тексте?

Приветствую!
Требуется выбирать из заданного текста лишь первое предложение. Сейчас для этого используется такая регулярка:
/(.*?[?!.](?=\s|$)).*/
Однако, она не работает в случае, если предложения не разделены пробелом.
То есть, нужно, чтобы RegExp получал первое предложение, например, из следующего текста:

"Это первое предложение, в котором говорится про п. 3.14 и другие пункты.Второе предложение по каким-то причинам не отделено от первого пробелом, но начинается с заглавной буквы. Тут также есть третье и сколько угодно ещё предложений и любого №;?% текста, которые не важны."
  • Вопрос задан
  • 4104 просмотра
Решения вопроса 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
/^(.*?[?!.])(?=\s*[A-ZА-ЯЁ]|$)/s
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@andrewjabber
Без использования Assertions:
$\s*?([A-ZА-ЯЁ].*?\.)
В первой группе будет первое предложение.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы