Удалить знак пунктуации с регулярным выражением?

Я сделал эту функцию, чтобы ограничить длину строки в выходе,

/* limit the lenght of the string */ function limit_length($content, $limit) { # strip all the html tags in the content $output = strip_tags($content); # count the length of the content $length = strlen($output); # check if the length of the content is more than the limit if ($length > $limit) { # limit the length of the content in the output $output = substr($output,0,$limit); $last_space = strrpos($output, ' '); # add dots at the end of the output $output = substr($output, 0, $last_space).'...'; } # return the result return $output; } 

он работает отлично, но я думаю, что это не идеально … например, у меня есть этот текст в строке,

 Gender Equality; Radicalisation; Good Governance, Democracy and Human Rights; 

и именно так я использую функцию,

 echo limit_length($item['pg_description'], 20); 

то он возвращается,

 Gender Equality;... 

Как вы можете это не выглядит великолепно ;... когда вы хотите сказать людям, что внутри содержимого / строки больше текста.

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

Является ли это возможным? Как я могу написать выражение для улучшения моей функции, чтобы оно могло быть своего рода «пуленепробиваемым»?

Благодарю.