添加空格以替换标点符号的出现,后跟字母数字单词,其间没有空格

时间:2012-06-20 11:36:59

标签: php

在我的生物信息中,用户有时会在不使用适当间距的情况下输入句子,如下所示:

$bio = 'Hey there,I'm Tom!And I'm 25';

我使用preg replace来修复逗号:

$bio = str_replace(",", ", ", $bio);

哪个回声:

$bio = 'Hey there, I'm Tom!And I'm 25';

除了'(来自我)之外,我如何为所有其他标点符号执行此操作?

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

您可以将preg_replace与数组一起使用。

首先创建一个替换的数组符号,如:

$signs = array('/,/', '/!/', '/?/');

比另一个带有替换的数组

$replacement = array(', ', '! ', '? ');

现在使用preg_replace的两个数组:

preg_replace($signs, $replacement, $bio);

要确保下一个标志不是whitspace,你可以为每个字符使用更复杂的正则表达式,如下所示:

$signs = array('/,(\S)/', '/!(\S)/', '/?(\S)/');
$replacement = array(', $1', '! $1', '? $1');

http://php.net/manual/de/function.preg-replace.php