在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)
零宽度负前瞻以匹配d
igit。
如果前瞻匹配,则正则表达式不匹配,字符串不拆分。
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)