如何通过文本中所有括号之间的php preg_replace删除空格

时间:2013-01-30 15:05:04

标签: php regex

我有类似的文字:

  

“吃[12]我的[15]短裤[20]”

我想从字符串中的所有括号中删除空格。

我尝试过类似的事情:

$str = 'Eat [ 12 ] my [ 15]  shorts [ 20 ]';
$str = preg_replace_callback("~\([^\)]*)\)~", function($s) {
    return str_replace(" ", "", "($s[1])");
}, $str);
echo $str;

但仍然没有成功。

有人可以告诉我,请问这个怎么做?

非常感谢您的帮助。

2 个答案:

答案 0 :(得分:2)

试试这个:

$str = 'Eat [ 12 ] my [ 15]  shorts [ 20 ]';
$str = preg_replace('#\[\s+#', '[', $str);
$str = preg_replace('#\s+\]#', ']', $str);

答案 1 :(得分:0)

如果您知道,只有一个空格,您可以使用简单的str_replace。这将比preg_replace快得多:

$str = str_replace( array( '[ ', ' ]' ), array( '[', ']' ), $str );