Я пытаюсь простого регулярного выражения против строки в 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"; } ?>