Я только что написал регулярное выражение для использования с функцией php preg_match
, которое содержит следующую часть:
[\w-.]
Для соответствия любому символу слова, а также знаку минус и точке.Хотя он, кажется, работает в preg_match, я попытался поместить его в утилиту с именем Reggy , и он жалуется на "Пустой диапазон в классе символов" .Метод проб и ошибок научил меня, что эта проблема была решена путем экранирования знака минус, превращения регулярного выражения в
[\w\-.]
Поскольку кажется, что оригинал работает в PHP, мне интересно, почему я должен или не должен избегатьзнак минус и - поскольку точка также является символом со значением в PHP - почему мне не нужно экранировать точку.Является ли утилита, которую я использую, просто глупой, работает ли она с другим диалектом регулярных выражений, или мое регулярное выражение действительно неверно, и мне просто повезло, что preg_match позволяет мне сойти с рук?