Вырезание символов, которые не являются a-zA-Z0-9, _ и – из строк PHP

Я хочу остановить все символы, которые НЕ соответствуют этому шаблону регулярного выражения: [a-zA-Z0-9_-] .

Обычно я бы это сделал:

 preg_replace("[a-zA-Z0-9_-]", "", $var); 

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

Благодарю.