Допустим, номер телефона должен состоять из трех цифр. Мы можем делать это как \d\d\d или \d{3}. Мне это ясно. Мы также можем сказать, что он должен начинаться с трех чисел, например ^\d{3}. И это заканчивается тремя числами с \d{3}$. И оба с ^\d{3}$. Пока мне это ясно. Но я не понимаю, почему это не совпадает: "123asd456"? Он соответствует правилам, потому что 1) он начинается с трех цифр и 2) заканчивается тремя цифрами. В какой части написано, что «да, но ДЛИНА должна быть ровно три»?
И да, я тестировал (с C#), что он не соответствует, я просто не понимаю, почему.
^ - начало строки, \d{3} - 3 цифры, $ - конец строки. Таким образом, можно сопоставить только строку, содержащую 3 цифры. Чтобы сопоставить 3 диаграммы в начале или в конце, используйте ^\d{3}|\d{3}$.
Итак, если я использую и «начинается с», и «заканчивается на», то регулярное выражение интерпретируется как «длина» или «и ничего больше»? Могу ли я как-то проверить, что «начинается с трех цифр, за которым следует, возможно, что угодно, и заканчивается тремя цифрами»? Это просто ^ \ d {3}. * \ D {3} $ или у нас есть что-нибудь попроще?





^= начало,\d{3}= ровно три цифры,$= конец. Там нет места для букв.