Javascript RegExp для разделения текста на предложения с кавычками и сохранения разделителя - PullRequest
0 голосов
/ 09 ноября 2018

Я пытаюсь разбить предложение на.!? как это было сделано в этом вопросе , но также учитывают возможные двойные кавычки в начале и конце предложения. Я использую это:

let str = '" Non. Es-tu sûr ? "';
let result = str.match(/[^\.!\?]+[\.!\?]+/g);

console.log(result)

Но когда я это делаю, 2 символа после ? не перехватываются. Поэтому вместо получения:

['"Non.", "Es-tu sûr?"']

Я получаю:

['"Non.", "Es-tu sûr?']

Есть ли способ разделить эти предложения с помощью регулярных выражений?

Ответы [ 2 ]

0 голосов
/ 09 ноября 2018

Если вы просто хотите сопоставить дополнительные пробелы и " символы после окончательной пунктуации, вы можете использовать

let str = '" Non. Es-tu sûr ? "';
let result = str.match(/[^.!?]+[.!?]+[\s"']*/g);
console.log(result)

См. Демоверсию regex . Шаблон [\s"']* соответствует 0 или более пробелов, " или ' символов.

Обратите внимание, что вам не нужно экранировать . и ? внутри классов символов.

0 голосов
/ 09 ноября 2018

Похоже, что все, что вам нужно сделать, это при желании сопоставить " s в начале и конце:

let str = '" Non. Es-tu sûr ? "';
console.log(
  str.match( /"?[^.!?]+[.!?]+(?: *")?/g )
);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...