我希望按字母跟随句点规则拆分文字。所以我这样做:
$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 )
如何解决问题?
答案 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*
- 零个或多个空格。 如果您使用正则表达式:\.
在创建的某些部分中,您将拥有一些前导空格。