Ответ 1
^
означает только "не следующее", когда внутри и в начале []
, поэтому [^...]
.
Когда он находится внутри []
, но не в начале, это означает фактический символ ^
.
Когда он экранируется (\^
), это также означает фактический символ ^
.
Во всех остальных случаях это означает начало строки/строки (какая из них зависит от языка/параметра).
Короче говоря:
-
[^abc]
→ не a, b или c -
[ab^cd]
→ a, b, ^ (символ), c или d -
\^
→ a^
символ - В другом месте → начало строки/строки.
Итак, ^[b-d]t$
означает:
- Начало строки
- символ b/c/d
- t символ
- Конец строки