PHP Preg匹配计数段落中的句子数

时间:2014-03-07 23:06:27

标签: php preg-match-all

我使用函数来计算使用preg_match的字符串段落中的句子数,但它似乎没有返回正确数量的句子。

这是段落 我昨晚梦见我和奥巴马挂在一起,他给了我他的iPad密码,这就是“如果”我看着他一切困惑,他只是笑了笑。昨晚我梦见我有点斗牛犬/响尾蛇混合......我怎么了?昨晚我梦见自己是镇上一个高档写字楼的暖通空调专家......哈哈。 #whattheheck

这是我正在使用的功能

function countSentences($str){
    return preg_match_all('/[^\s](\.|\!|\?)(?!\w)/',$str,$match);
}

对于上面的段落,它返回7个句子而不是6个句子 请告知我可以改变的内容

谢谢, DB

1 个答案:

答案 0 :(得分:3)

试试这段RegEx:

([^\.\!\?]+)

http://regexr.com?38f5v

或者这个(也将包括最终字符):

([^\.\!\?]+[\.\?\!]*)

http://regexr.com?38f6e