我试图使用javascript的拆分来获取字符串中的句子,但保留分隔符,例如!?.
到目前为止我有
sentences = text.split(/[\\.!?]/);
Run Code Online (Sandbox Code Playgroud)
哪个有效,但不包括每个句子的结尾标点符号(.!?).
有谁知道这样做的方法?
目前我正在开发一个将长列分成短列的应用程序.为此我将整个文本分成单词,但此刻我的正则表达式也将数字拆分.
我这样做是这样的:
str = "This is a long string with some numbers [125.000,55 and 140.000] and an end. This is another sentence.";
sentences = str.replace(/\.+/g,'.|').replace(/\?/g,'?|').replace(/\!/g,'!|').split("|");
Run Code Online (Sandbox Code Playgroud)
结果是:
Array [
"This is a long string with some numbers [125.",
"000,55 and 140.",
"000] and an end.",
" This is another sentence."
]
Run Code Online (Sandbox Code Playgroud)
期望的结果是:
Array [
"This is a long string with some numbers [125.000, 140.000] and an end.",
"This is another sentence"
]
Run Code Online (Sandbox Code Playgroud)
我如何改变我的正则表达式来实现这一目标?我是否需要注意可能遇到的一些问题?或者它是否足以搜索". ","? "并且"! " …
已经有几个类似的问题:
我的情况有点不同。
我需要数数字符串中的句子数。
最接近我需要的答案是:
str.replace(/([.?!])\s*(?=[A-Z])/g, "$1|").split("|")
Run Code Online (Sandbox Code Playgroud)
这里唯一的问题是这个 RegEx 假设句子以大写字母开头,但情况并非总是如此。
更具体地说,我将一个句子定义为:
但是,如果一个句子包含一个数字,而数字本身又包含一个“.”或一个“,”,则该句子应被视为一个句子而不是两个句子。
最后但并非最不重要的一点是,我们可以假设,除了第一句话,一个句子前面都有一个空格。
给定一个随机字符串,我如何计算它包含的 Javascript(或 CoffeeScript)的句子数?