Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   регулярное выражения для получения всех предложения из текста. (https://javascript.ru/forum/misc/71255-regulyarnoe-vyrazheniya-dlya-polucheniya-vsekh-predlozheniya-iz-teksta.html)

ivnjavascript 04.11.2017 21:16

регулярное выражения для получения всех предложения из текста.
 
Добрый день.
Подскажите вариант для получения всех предложение из текста.

Сейчас есть вот такое:
"([^.!?]+)"


Но если в предложение будет дата (20.10.17) или десятичное число (0.4), то предложение обрежется. Или многоточие.

Примеры предложений:

Код:

Предложение 1, которое уже работает.
Предложение 2.1, которое не будет работать.
Предложение 3, которое тоже не будет работать из-за многоточий...
Предложение 4, которое не будет работать из-за даты 20.10.17!


Может кто то сталкивался с такой задачей, спасибо.

рони 04.11.2017 21:47

ivnjavascript,
<script>
"use strict"
var s = `Предложение 1, которое уже работает.
Предложение 2.1, которое не будет работать.
Предложение 3, которое тоже не будет работать из-за многоточий...
Предложение 4, которое не будет работать из-за даты 20.10.17!`;
var reg = /([^.!?]|(\.\d))+(?:[.!?]+)/gim;
document.write(JSON.stringify(s.match(reg)))
  </script>

Lion777 04.11.2017 22:26

предложение заканчивается ".{1,3} или !{1,3} или ?{1,3} и пробел\s" в чем проблема разбить текст на строки

рони 04.11.2017 23:04

Lion777,
:-?

Lion777 04.11.2017 23:50

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

рони 05.11.2017 00:07

Lion777,
можно пример???

Lion777 05.11.2017 15:38

да тут с пробелами не канает, по данной регулярке есть еще вопрос, если предложение имеет сокращения "т.д и т.п"?
типа
Предложение 1, которое уже работает и т.д. и т.п. Предложение 2.1, которое не будет работать.

ivnjavascript 07.11.2017 18:52

Цитата:

Сообщение от Lion777 (Сообщение 469257)
да тут с пробелами не канает, по данной регулярке есть еще вопрос, если предложение имеет сокращения "т.д и т.п"?
типа
Предложение 1, которое уже работает и т.д. и т.п. Предложение 2.1, которое не будет работать.

сокращение т.д и т.п или 2.1 или 20.11.17

рони 07.11.2017 20:02

:-?


Часовой пояс GMT +3, время: 15:29.