Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何通过php preg_替换删除文本中所有括号之间的空白_Php_Regex - Fatal编程技术网

如何通过php preg_替换删除文本中所有括号之间的空白

如何通过php preg_替换删除文本中所有括号之间的空白,php,regex,Php,Regex,我对类似的案文有如下看法: “吃我的短裤” 我想删除字符串中所有括号中的空格 我试过这样的方法: $str = 'Eat [ 12 ] my [ 15] shorts [ 20 ]'; $str = preg_replace_callback("~\([^\)]*)\)~", function($s) { return str_replace(" ", "", "($s[1])"); }, $str); echo $str; 但仍然没有成功 谁能告诉我,怎么做才是正确的方法 非常感谢

我对类似的案文有如下看法:

“吃我的短裤”

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

我试过这样的方法:

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

谁能告诉我,怎么做才是正确的方法

非常感谢您的帮助。

试试这个:

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

如果你知道只有一个空格,你可以用简单的stru替换。这将比preg_替换快得多:

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