Ваше регулярное выражение, как оно написано, вероятно, не будет делать то, что вы хотите. Вам нужно сначала убрать обратную косую черту. Например, в Perl вы бы использовали его как:
if ($number =~ /[1-9]\d{2}-[1-9]\d{2}-\d{4}/) {
print "matches!\n";
}
Ваше регулярное выражение будет разбиваться следующим образом:
/[1-9] # Match exactly one of the numbers 1 through 9
\d{2} # Match exactly two digits
- # Match exactly one dash
[1-9] # Match exactly one of the numbers 1 through 9
\d{2} # Match exactly two digits
- # Match exactly one dash
\d{4} # Match exactly four digits
/x
Редактировать: Чтобы показать вам, как работает ваше регулярное выражение в его нынешнем виде, вот его разбивка:
/[1-9] # Match exactly one of the numbers 1 through 9
\\ # Match exactly one \
d{2} # Match exactly two 'd's
- # Match exactly one dash
[1-9] # Match exactly one of the numbers 1 through 9
\\ # Match exactly one \
d{2} # Match exactly two 'd's
- # Match exactly one dash
\\ # Match exactly one \
d{4} # Match exactly four 'd's
/x
Видите, как сильно отличается двойная обратная косая черта?