如何使用 php 中删除括号并将"空格"替换为"-"preg_replace



这就是我所拥有的-华为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

最新更新