我正试着用。!?分句。就像它在this question中完成的那样,但也可以在句子的开头和结尾处考虑可能的双引号。我正在使用这个:
let str = '" Non. Es-tu sûr ? "';
let result = str.match(/[^\.!\?]+[\.!\?]+/g);
console.log(result)
但是当我这样做时,后面的2个字符?没被抓住。所以不要得到:
['“不','你确定吗?'']
我越来越:
['“不','你确定吗?']
无论如何使用正则表达式来分割这些句子?
看起来你需要做的就是选择在开头和结尾匹配"
s:
let str = '" Non. Es-tu sûr ? "';
console.log(
str.match( /"?[^.!?]+[.!?]+(?: *")?/g )
);
如果你只是想在最终标点符号后匹配额外的尾随空格和"
字符,你可以使用
let str = '" Non. Es-tu sûr ? "';
let result = str.match(/[^.!?]+[.!?]+[\s"']*/g);
console.log(result)
见regex demo。 [\s"']*
模式匹配0或更多的空格,"
或'
字符。
请注意,您不需要在字符类中转义.
和?
。