Убрать из url все круглые скобки с помощью регулярного выражения и preg_replace

Есть функция с регулярным выражением, для создания ссылок в постах и есть в ней проблема, если поставить в середине ссылки круглую скобку, то она становиться частью ссылки и переход осуществляется на 404.

Пример
https://nimbusweb.me/s/share/3130667/59rpygxll4mm4ul5so()t

Убрать скобки в начале и в конце у меня получилось. Как убрать все круглые скобки не понимаю, перебрал кучу вариантов , но нужный результат так и не получил.

Спасибо за ответы!

private function liveLinks(){

    $reg_exUrl = '@(http(s)?://)?(([a-zA-Z])([-\w]+\.)+([^\s\.]+[^\s]*)+[^,.\s]+[^$\(\)]+)@';

    return preg_replace($reg_exUrl, '<a href="http$2://$3">$0</a>', $this->text);

}

Ответы (2 шт):

Автор решения: Borislav
str_replace(')', '', str_replace('(', '', $yourUrl));

Можно и без регулярки справиться, хотя и считаю, что как раз регулярное выражение под данную задачу - не комильфо.

→ Ссылка
Автор решения: Wiktor Stribiżew

Используйте функцию preg_replace_callback, в которой вторым аргументом может быть анонимная функция обратного вызова, принимающей в качестве аргумента объект совпадения. Внутри этой функции можно обработать каждую необходимую группу, а потом собрать строку замены заново:

function liveLinks($text){
    $trans = array("(" => "", ")" => "");
    $reg_exUrl = '@(http(s)?://)?(([a-zA-Z])([-\w]+\.)+([^\s.]+\S*)+[^,.\s]+[^$()]+)@';
    return preg_replace_callback($reg_exUrl,  function($m) use ($trans) {
        return '<a href="http' . $m[2]. '://' . strtr($m[3], $trans) . '">' . strtr($m[0], $trans) . '</a>';
    }, $text);
}
echo liveLinks('https://nimbusweb.me/s/share/3130667/59rpygxll4mm4ul5so()t');
// => <a href="https://nimbusweb.me/s/share/3130667/59rpygxll4mm4ul5sot">https://nimbusweb.me/s/share/3130667/59rpygxll4mm4ul5sot</a>

См. пример работы кода

$trans = array("(" => "", ")" => "") и strtr($m[3], $trans) удаляет круглые скобки в третьей ($m[3]) группе (подмаске).

→ Ссылка