如何按字母顺序分割?

时间:2010-03-08 18:10:04

标签: php regex preg-replace

我希望按字母跟随句点规则拆分文字。所以我这样做:

$text = 'One two. Three test. And yet another one';
$splitted_text = preg_split("/\w\./", $text);
print_r($splitted_text);

然后我明白了:

Array ( [0] => One tw [1] => Three tes [2] => And yet another one )

但我确实需要这样:

Array ( [0] => One two [1] => Three test [2] => And yet another one )

如何解决问题?

3 个答案:

答案 0 :(得分:2)

使用explode声明

$text = 'One two. Three test. And yet another one';
$splitted_text = explode(".", $text);
print_r($splitted_text);

更新

$splitted_text = explode(". ", $text);

使用“。”explode语句也检查空格。

您可以使用任何类型的分隔符,也可以使用短语,而不仅仅是单个字符

答案 1 :(得分:2)

它在信件和期间的分裂。如果你想测试以确保在句号之前有一个字母,你需要使用断言后面的正面看法。

$text = 'One two. Three test. And yet another one';
$splitted_text = preg_split("/(?<=\w)\./", $text);
print_r($splitted_text);

答案 2 :(得分:1)

使用正则表达式是一种过度杀伤,您可以轻松使用explode。由于已经给出了基于爆炸的答案,我将给出一个基于正则表达式的答案:

$splitted_text = preg_split("/\.\s*/", $text);

使用正则表达式:\.\s*

  • \. - 点是一个元字符。为了匹配文字匹配,我们逃避它。
  • \s* - 零个或多个空格。

如果您使用正则表达式:\.

在创建的某些部分中,您将拥有一些前导空格。