我是一个正则表达式新手,正在尝试将段落分割为句子。在我的语言中,我们在句子中使用了相当多的缩写词(例如:bl.a.),因此我得出的结论是,我需要寻找紧跟着一个单空格和以大写字母开头的单词的标点符号,像这样:
[sentence1]...anymore. However...[sentence2]
因此,像这样的段落:
Der er en lang og bevæget forhistorie bag lov om varsling m.v. i forbindelse med afskedigelser af større omfang. Det er ikke en bureaukratisk lovtekst blandt så mange andre.
应该以这个输出结束:
[0] => Der er en lang og bevæget forhistorie bag lov om varsling m.v. i forbindelse med afskedigelser af større omfang.
[1] => Det er ikke en bureaukratisk lovtekst blandt så mange andre.
而不是这个:
[0] => Der er en lang og bevæget forhistorie bag lov om varsling m.v.
[1] => i forbindelse med afskedigelser af større omfang.
[2] => Det er ikke en bureaukratisk lovtekst blandt så mange andre.
我已经找到了一种解决方案,可以通过正向后顾特性来完成第一部分:
$regexp = (?<=[.!?] | [.!?][\'"]);
然后
$sentences = preg_split($regexp, $paragraph, -1, PREG_SPLIT_NO_EMPTY);
这是一个很好的起点,但由于缩写词过多,切分太频繁。
我尝试做了这个:
(?<=[.!?]\s[A-Z] | [.!?][\'"])
以便针对任何一个出现的情况进行定位
. or ! or ?
后面跟一个空格和一个大写字母,但是并没有起作用。
有人知道是否有办法实现我想做的事情吗?