我正试图了解正则表达式,但我失败了。
我有一个字符串,我想匹配并删除两个括号之间的每个空格。
例如:
This string (is an example).
会成为:
This string (isanexample).
我正试图了解正则表达式,但我失败了。
我有一个字符串,我想匹配并删除两个括号之间的每个空格。
例如:
This string (is an example).
会成为:
This string (isanexample).
您可以使用preg_replace_callback;
$str = "This string (is an example).";
$str = preg_replace_callback("~\(([^\)]*)\)~", function($s) {
return str_replace(" ", "", "($s[1])");
}, $str);
echo $str; // This string (isanexample).
您需要递归地执行此操作。一个正则表达式不会这样做。
$line = preg_replace_callback(
'/\(.*\)/',
create_function(
"\$matches",
"return preg_replace('/\s+/g','',\$matches);"
),
$line
);
这样做是第一个模式找到括号内的所有文本。它将这个匹配传递给命名方法(或者在这种情况下是匿名方法)。该方法的返回用于替换匹配的内容。