正则表达式用于拆分为句子,忽略十进制数字作为拆分的一部分?



在javascript中,我对将文本正文拆分为数组句子感兴趣,其中它忽略了十进制数字(理想情况下是网站(进行拆分。 我已经找到了如何为句子执行此操作 - 例如,str.split(/[.!]+s*|n+s*/)- 但不确定如何添加额外的位以忽略拆分中的十进制数

例如,如果

str = "Hello there, the ice cream is $2.00.Toppings are extra."

将导致

["Hello there, the ice cream is $2.00", "Toppings are extra"]

这可能吗?

谢谢!

str = "Hello there, the ice cream is $2.00.Toppings are extra.";    
str.split(/[.!]+(?!d)s*|n+s*/); //[ 'Hello there, the ice cream is $2.00', 'Toppings are extra',]
  • (?!d)零宽度负前瞻以匹配digit。

如果前瞻匹配,则正则表达式不匹配,字符串不拆分。

Scala :

import java.util.regex.Pattern;
var regPattern = "(?<!\d)\.(?!\d)|(?<=\d)\.(?!\d)|(?<!\d)\.(?=\d)";
val pt = regPattern.compile(pattern);
var strList: List[String]= pt.split(input).map(_.trim)(breakOut)

最新更新