为什么这不起作用? $ array = explode('?',$ str);

时间:2012-11-18 13:29:02

标签: php regex

我有一段中文段落(也称为“句号”)和问号。我想将段落分解为句子数组。我似乎无法让preg_split(/。|?|!/, $str)使用包含问号或感叹号的任何内容。它忽略了问号和感叹号。

我尝试了以下内容并且工作正常:

$array = explode('。', $okresult);

但是下面只返回一个数组,其中一个索引填充整个段落:

$array = explode('?', $okresult);

以下是我要分割的段落。它在语法上是不正确的,我只是将它用作测试:

  

公元前5世纪,尼希米担任犹太人的省长,他尽心竭力做上帝喜悦的事!例如,他不怕敌人反对,带头重建耶路撒冷的城墙。他执行上帝的律法,关怀受压迫的人,也致力巩固同胞对上帝的信心。上帝有没有留意他这个忠仆的善行呢?尼希米得到耶和华的悦纳吗?我们看看尼希米记的最后一节经文,就知道答案了。

这也不起作用:mb_split('?', $okresult);

1 个答案:

答案 0 :(得分:3)

您错过了/u Unicode modifierpreg_split。此处使用字符类也更短:

preg_split('/[。?!]/u', $str)