我正在尝试用。!分割句子。就像在this question中所做的一样,但是也要考虑句子开头和结尾可能的双引号。我正在使用这个:
let str = '" Non. Es-tu sûr ? "';
let result = str.match(/[^\.!\?]+[\.!\?]+/g);
console.log(result)
但是当我这样做时,?之后的两个字符不会被捕获。所以没有得到:
['“ Non。','Es-tusûr?”']
我得到:
['“ Non。','Es-tusûr?']
反正可以使用正则表达式拆分这些句子吗?
答案 0 :(得分:1)
看起来您需要做的就是在开头和结尾都匹配"
:
let str = '" Non. Es-tu sûr ? "';
console.log(
str.match( /"?[^.!?]+[.!?]+(?: *")?/g )
);
答案 1 :(得分:1)
如果您只想在最后的标点符号之后匹配其他尾随空格和"
字符,则可以使用
let str = '" Non. Es-tu sûr ? "';
let result = str.match(/[^.!?]+[.!?]+[\s"']*/g);
console.log(result)
请参见regex demo。 [\s"']*
模式匹配0个或多个空格,"
或'
个字符。
请注意,您无需在字符类中转义.
和?
。