Подтвердить что ты не робот

Уход за регулярными выражениями

В частности, когда "означает начало матча" и когда это означает "не следующее" в регулярных выражениях?

Из статьи Википедии и других ссылок я заключил, что это означает, что первое в начале и в последнем случае используется с скобками, но как программа обрабатывает случай, когда каретка находится в начале и в скобке? Что, скажем, ^ [b-d] t $соответствует?

4b9b3361

Ответ 1

^ означает только "не следующее", когда внутри и в начале [], поэтому [^...].

Когда он находится внутри [], но не в начале, это означает фактический символ ^.

Когда он экранируется (\^), это также означает фактический символ ^.

Во всех остальных случаях это означает начало строки/строки (какая из них зависит от языка/параметра).

Короче говоря:

  • [^abc] → не a, b или c
  • [ab^cd] → a, b, ^ (символ), c или d
  • \^ → a ^ символ
  • В другом месте → начало строки/строки.

Итак, ^[b-d]t$ означает:

  • Начало строки
  • символ b/c/d
  • t символ
  • Конец строки