在PHP中添加字符和特殊符号之间的空格


add white spaces between characters and special symbol in PHP

我是php的新手,我想知道如何在字符和符号之间或符号和符号之间添加空白,例如,原始字符串是" [PDF格式(29.71MB)] ",我如何使用函数preg_replace或其他方法将结果表示为" [PDF格式(29.71MB)] " ?例如,我想在符号"["和字符"P"以及")"answers"]"之间留下空白

多谢西蒙

$s = "[PDF format(29.71MB)]";
$s = preg_replace("/['[)](?!'s)/", "$0 ", $s);
$s = preg_replace("/(?!<'s)['[(]/", " $0", $s);
$s = trim($s);
echo $s;

两个正则表达式

  1. 在每个[)后面附加一个空格
  2. 在前面没有空格
  3. ](前面加一个空格

见:http://ideone.com/No9dq

对于您的字符串,正则表达式对我来说看起来有点太多了:

$string = '[PDF format(29.71MB)]';
$string = str_replace(array('[', ']', '('), array('[ ', ' ]', ' ('), $string);

将需要额外空格的字符替换为它们的空格变体。

$s = "[PDF format(29.71MB)]";
$s = preg_replace("/([^'w.])/", " ''1 ", $s);
$s = preg_replace("/'s's+/", " ", $s);
echo $s;

第一个在非单词字符和点的两边各放一个空格。第二个是删除多余的空格。