Javascript RegExp用于将文本拆分为带引号的句子并保留分隔符

问题描述 投票:1回答:2

我正试着用。!?分句。就像它在this question中完成的那样,但也可以在句子的开头和结尾处考虑可能的双引号。我正在使用这个:

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

console.log(result)

但是当我这样做时,后面的2个字符?没被抓住。所以不要得到:

['“不','你确定吗?'']

我越来越:

['“不','你确定吗?']

无论如何使用正则表达式来分割这些句子?

javascript regex sentence
2个回答
1
投票

看起来你需要做的就是选择在开头和结尾匹配"s:

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

1
投票

如果你只是想在最终标点符号后匹配额外的尾随空格和"字符,你可以使用

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

regex demo[\s"']*模式匹配0或更多的空格,"'字符。

请注意,您不需要在字符类中转义.?

© www.soinside.com 2019 - 2024. All rights reserved.