2014-02-25 61 views
0

我們使用以下內容將字符串拆分爲兩列。該字符串當前分爲.,?!使用PHP將段落拆分爲2列

我們該如何調整以便在."?"!"處拆分?

$middle = strrpos(substr($text, 0, floor(strlen($text)/2)), ' ') + 1; 
$adjust = strcspn($text, '.!?', $middle); 

例如:

這是不帶引號一些文本。 「這是帶引號的文字!」而更多的文字沒有引號。

將被拆分爲:

這是一些沒有引號的文字。 「這是帶引號的文字!」

而更多的文字沒有引號。

+0

如果你在標點符號上分裂,那麼它們不是段落,而是最有可能的句子或句子片段。 – AbraCadaver

回答

5

聽起來像一個用例爲preg_split()

$arr = preg_split('/[.,?!]/', $text, -1, PREG_SPLIT_NO_EMPTY); 

Demo

+0

'.'和'?'需要在'RegEx'中轉義。像'\ .'和'\?'。 – CodeAngry

+2

@CodeAngry:**沒有**,當他們在*角色類中時,他們不會。 –

+0

**它的工作原理就像你說的那樣**但我永遠不會鼓勵有人每次使用它們時都會使用它們,他們希望它們扮演簡單的角色。它保持一個關注。 – CodeAngry

1

如果你把你的分裂性格的背後可選引號字符的照顧,試試這個:

preg_split('/[?!.]"?/', $text, -1, PREG_SPLIT_NO_EMPTY);