Как работает длина регулярного выражения?

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

И да, я тестировал (с C#), что он не соответствует, я просто не понимаю, почему.

^ = начало, \d{3} = ровно три цифры, $ = конец. Там нет места для букв.
Andrew Morton 10.07.2018 14:21
^ - начало строки, \d{3} - 3 цифры, $ - конец строки. Таким образом, можно сопоставить только строку, содержащую 3 цифры. Чтобы сопоставить 3 диаграммы в начале или в конце, используйте ^\d{3}|\d{3}$.
Wiktor Stribiżew 10.07.2018 14:21

Итак, если я использую и «начинается с», и «заканчивается на», то регулярное выражение интерпретируется как «длина» или «и ничего больше»? Могу ли я как-то проверить, что «начинается с трех цифр, за которым следует, возможно, что угодно, и заканчивается тремя цифрами»? Это просто ^ \ d {3}. * \ D {3} $ или у нас есть что-нибудь попроще?

Arto Kilponen Os Kilponen 10.07.2018 14:55
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
3
45
0

Другие вопросы по теме