Esto es lo que tengo - Huawei MatePad 11 (2021)
Esto es lo que quiero - Huawei-MatePad-11-2021
Esto es lo que he hecho hasta ahora. (solo reemplaza "espacio en blanco" con "-".
echo preg_replace('/[[:space:]]+/', '-', $test);Quiero eliminar los paréntesis y quiero reemplazar "espacio en blanco" con "-" a la vez. ¿Cómo hacerlo?
$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;También puede usar un patrón único con preg_replace_callback y hacer coincidir desde un paréntesis de apertura hasta cierre.
\(([^()]+)\)|\h+El patrón coincide:
\( Partido (([^()]+) Grupo de captura 1 coincide con 1+ caracteres que no sean ( )\) Partido )| O\h+ Combina 1 o más caracteres de espacio en blanco horizontalesdemostración de Php | Demostración de expresiones regulares
Por ejemplo, devuelva el grupo 1 usando $m[1] si existe; de lo contrario, devuelva -
$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;Producción
Huawei-MatePad-11-2021