2014-02-25 41 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);