Регулярное выражение ^\[*\]$
неверно.
^ - Start anchor
\[ - A literal [
* - Quantifier for zero or more
\] - A literal ]
$ - End anchor
Квантор *
применяется к детали, находящейся перед ним, в этом случае он применяется к [
.Я предполагаю, что вы перепутали *
с его использованием в оболочке , где оно означает любые символы любое количество раз.
Так что ваше регулярное выражение соответствует нулю или более[
в начале строки и один ]
в конце строки.
Эквивалент *
оболочки в регулярном выражении равен .*
, что соответствует любому символу (кроме символа новой строки) любойколичество раз.Таким образом, вы можете попробовать регулярное выражение ^\[.*\]$
В качестве альтернативы вы можете попробовать: ^\[[^\]]*\]$