0

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

$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';

我如何对除 ' (from I'm) 之外的所有其他标点符号执行此操作?

有任何想法吗?

4

1 回答 1

0

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

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

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

比另一个有替换的数组

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

现在将两个数组与 preg_replace 一起使用:

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

为确保下一个符号不是空白,您可以对每个字符使用更复杂的正则表达式,如下所示:

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

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

于 2012-06-20T11:53:26.940 回答