Используя PHP, как я могу проверить строку для шаблона, а затем изменить ее?

В PHP данная строка:

$string = '/sometext?123#abc/moretext'; 

Как я могу проверить наличие шаблона «? 123 # abc /», который всегда будет заключен в??? и "/", но имеют различный внутренний текст, который может включать любой текст и символы? Текст вне шаблона также будет отличаться. Мне нужно сделать это:

 if ($string includes pattern ?*/) { //load the inner value into a variable //then remove the entire patern including the leading "?" and trailing "/" and replace with a single "/" } 

Как мне это сделать?