Preg_split不显示句子的第一个字符

时间:2014-06-05 11:36:39

标签: php

我有这段代码:

<?php
header('Content-type: text/html; charset=utf-8');
$re = "/[.\!\?][\s\n\r\t][A-Z]/";
$forbiddenwords=array("on", "ja", "ning", "ega", "ehk", "või", "aga", "kuid", "ent", "vaid", "et", "kui", "kuna", "sest", "kuni", "kuigi", "ehkki", "nagu" );
$text = 'Oma eluajal ja veel 18. sajandi lõpul oli Bach tuntud vaid võrdlemisi kitsas ringkonnas, heliloojana hakati teda laialt tunnustama alles 19. sajandi esimesel poolel. Praegu peetakse teda põhiliseks heliloojaks barokiajastul ja üheks suurimaks terves muusikaajaloos. Tema loomingut on peetud saksa klassikalise muusika kõrgaja alguseks';

function splitintosentences($re, $text){
    $sentences = preg_split($re, $text, -1, PREG_SPLIT_NO_EMPTY);
    print_r ($sentences);
}

splitintosentences($re, $text);

?>

一切正常,但是当程序打印出句子时,它不会显示句子的第一个字母。例如,如果句子是“狗是棕色”,那么它显示“og是棕色”。怎么解决这个问题?

1 个答案:

答案 0 :(得分:2)

我认为你需要A-Z作为前瞻:

 /[.!?]\s(?=[A-Z])/

读取:标点符号和空格,如果后跟大写字母。