2015-07-12 59 views
0

我需要找出WordPress中頁面上有多少句子。我用preg_split(/[!?.]/,$text)找出,然後用sizeof($array)得到句子數。我得到了錯誤的號碼。似乎我的句子之間的空白也被計算在內(但我不確定這是怎麼回事)。當它返回14時它返回21.我無法讓preg_split在wp中正常工作

這裏發生了什麼?

回答

1

字符?.在正則表達式模式中有特殊的含義。所以我認爲你必須用反斜槓轉義字符,所以他們匹配從字面上

例如

  • .通常匹配任何單個字符,除換行符
  • ?匹配零個或一個

如果你想更深入的regex看看這個link或看here

$text = "This is a test. this is. again. and again? or what! is it?"; 

$num = preg_split('/[!\?\.]/', $text, null, PREG_SPLIT_NO_EMPTY); 

var_dump(sizeof($num)); //outputs int(6) 
+0

謝謝你,你是對的。但即使這樣也行不通。帖子中有圖片。那會讓事情變得複雜嗎? –

+0

這裏例如,你將不得不刪除html標籤才能使它工作:'$ text = strip_tags(「again?」); '。在WP中,您可以使用方便的函數'wp_strip_all_tags'而不是'strip_tags'。 _OR_或許你建立一個正則表達式來檢查字符'! ?和*之後是*空格*或*換行符*,以獲得句子的數量。 – pbaldauf

+0

坦克你!那根襪子很好! –