PHP: Regex – неизвестная ошибка модификатора

Я пытаюсь простого регулярного выражения против строки в php. Регулярное регулярное выражение

[A-Za-z0-9\-_]* 

Как всегда, когда я использую его в php, я получаю сообщение об ошибке:

 Warning: preg_match(): Unknown modifier '*' in "C:/apache/....." on line 2 

вот мой код:

 <?php if(preg_match("[A-Za-z0-9\-_]*",'vidhu_1911')){ echo "it matched!"; }else{ echo "fail to match"; } ?> 

Можете ли вы сказать мне, что я делаю неправильно?

Спасибо, Видху

Для регулярного выражения вам нужны разделители регулярных выражений

 <?php if(preg_match("/[A-Za-z0-9\-_]*/",'vidhu_1911')){ echo "it matched!"; }else{ echo "fail to match"; } ?> 

В вашем коде квадратные скобки интерпретируются как разделители регулярных выражений, а символы после замыкающего ограничителя являются модификаторами регулярного выражения. Таким образом, * рассматривался как модификатор, но он не является допустимым модификатором.

Для получения дополнительной информации см. Раздел «Разделители» на php.net

Вы должны заключить регулярное выражение в косые черты:

 <?php if(preg_match("/[A-Za-z0-9\-_]*/",'vidhu_1911')){ echo "it matched!"; }else{ echo "fail to match"; } ?>