我想做的不是在段落中的句子计数中包含段落中将出现的小数值。
例如,我的段落中可能包含“0.1344”等小数或“5.00153.09”等代码。我怎样才能不将这些句号计入我的句子计数中?
最佳答案
我认为计算句子的通用方法是一件复杂的事情。但是,根据您尝试解析的输入,您可以通过后面不跟数字的点的数量来计算句子的数量。
比方说:
1 - 所有句子都以句点 (.) 结尾
2 - 点出现的唯一时间是在代码 (5.00153.09) 或小数 (23.22) 中。
3 - 不存在句点后面紧跟数字的句子。例如。 “我不是一个句子.1”
然后你可以使用正则表达式来计算句子的数量,这样:
const count = (str) => {
const re = /\.(?![0-9])/g
return ((str || '').match(re) || []).length
}
const str = "Sentence 5.00153.09 has a code. 0.1344 starts the second sentence.\nThird sentence is a number too 530.1344.\nAnd a fourth plain sentence here."
console.log(`'${str}' has ${count(str)} sentences`)
这里的神奇之处在于正则表达式\.(?![0-9])
,它使用负数lookahead定义“后面不跟数字的点”
关于javascript - 句子计数中不包括小数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52322909/