Правая квадратная скобка в регулярном выражении, не может быть экранирована?

Я использую клише и регулярные выражения для ввода параметров. http://clish.sourceforge.net/clish-0.7.3/group__clish__ptype.html

Я белый список символов, таких как:

 pattern="[a-zA-Z0-9\!\[\£\$\%\/\^\_\+\=\#\@\;\,\|\*\{\}\(\)\~\.\>\<\&\-]+"

Это отлично работает, я могу ввести любой из указанных символов. Однако, если я добавлю \] или же \\] избежать правой квадратной скобки это не работает. Это соответствует [ и поэтому не может быть введен, ничего после ], Любые идеи, как избежать этого, чтобы войти ] как действительный персонаж? [ работает отлично.

1 ответ

Решение

Попробуйте этот шаблон

pattern="[][a-zA-Z0-9!£$%/^_+=#@;,|*{}()~.&-]+"

Закрывающая квадратная скобка букв должна быть на первой позиции в классе символов, чтобы избежать неоднозначности с закрывающей квадратной скобкой, которая закрывает класс символов (поскольку пустой класс символов не допускается). Вы можете поставить открывающую квадратную скобку в любом месте (очевидно, не в первой позиции или после - )

Попробуй это:

.*[~!@#$%^&*()_+-={}|\\\]\[:";'<>?,./].*

Проверьте Regex здесь

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