这就是我所拥有的-华为MatePad 11(2021(
这就是我想要的-华为MatePad-11-2021
这就是我迄今为止所做的。(只是它用"-"代替"空白">
echo preg_replace('/[[:space:]]+/', '-', $test);
我要删除括号,并要替换";"空白";用"-"同时怎么做?
$text = 'Huawei MatePad 11 (2021)';
$text = preg_replace('/[(|)]/', '', preg_replace('/s+/', '-', $text));
echo($text);
$test = preg_replace('/[[:space:]]+/', '-', $test); # Replace space
$test = preg_replace('/[(|)]+/', '', $test); # Replace parenthesis
echo $test;
您还可以使用一个带有preg_replace_callback的单一模式,并从左括号到右括号进行匹配。
(([^()]+))|h+
模式匹配:
(
匹配(
([^()]+)
捕获组1匹配除(
)
之外的1+个字符)
匹配)
|
或h+
匹配1个或多个水平空白字符
Php演示| Regex演示
例如,使用$m[1]
返回组1(如果存在(,否则返回-
$s = "Huawei MatePad 11 (2021)";
$regex = "/(([^()]+))|h+/";
$result = preg_replace_callback($regex, function($m) {
return array_key_exists(1, $m) ? $m[1] : '-';
}, $s);
echo $result;
输出
Huawei-MatePad-11-2021