Если вы замените все совпадения на пустую строку, вы получите несоответствующие части:
preg_replace('/[A-Za-z0-9-_\s]+/', '', $string)
Это будет работать для любого произвольного регулярного выражения, но для вашего конкретного регулярного выражения @ Решение Энди проще.
Обратите внимание, что я удалил якоря ^
и $
, чтобы сделать эту работу.