javascript регулярное выражение - разделение текста на предложения. если перед ним нет номера - PullRequest
0 голосов
/ 21 января 2020

Я пытаюсь разобрать текст на предложения, используя:

srt.replace(/(\.+|:|!|\?)(\s|\n|\r|\r\n)/gm, "$1$2|").split("|");

Это прекрасно работает, но ... Если предложение начинается с номера списка (то есть "1. some words"), я получаю: ['1.', 'some words'].

Я впервые использую регулярное выражение, и хотя я знаю, что есть способ посмотреть назад, я не смог его использовать. Как я могу изменить свое регулярное выражение, чтобы разделить только на. если перед ним нет цифр?

1 Ответ

0 голосов
/ 22 января 2020

Завершено использованием str.replace(/(?<!:)(\n)\s*/g, "$1|").replace(/(?<![0-9])(\.+)\s*/g, "$1|").replace(/(\?+|!+)\s*/g, "$1|").split("|")

Я уверен, что есть более красивый способ написать это регулярное выражение, но как новичок - я пока не знаю как. Это также охватывает: 1. Не разбивать, если после новой строки есть: 2. Несколько точек, вопросительные и восклицательные знаки

Этот код предназначен для разделения текста на «идеи», поэтому я использовал условия Я сделал, может быть, не совсем подходящая логика c для простой необходимости "разбить на предложения".

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...