2016-12-05 3 views
0

У меня есть следующее регулярное выражение:почему это регулярное выражение не делают специальные символы принудительны

(?=^.{7,14}$)(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[[email protected]#$%^&*()_+}{":;'?\/>.<,])(?!.*\s).*$

Это означало, чтобы соответствовать и обеспечить следующий пароль политики:

  • One Capital
  • Один нижний регистр
  • Одна цифра
  • один специальный символ, т.е. @

Однако, это позволяет пароль без каких-либо специальных символов.

+0

извините может кто-то объяснить это мне. Никогда не понимал регулярного выражения. они нужны зло! – Ageis

+0

Вам нужно использовать реальные символы вместо сущностей, см. Https://regex101.com/r/TVPOCO/2. Чего вы пытаетесь достичь? Пожалуйста, перепишите вопрос, чтобы описать вашу реальную проблему. –

+0

извините, но у меня вопрос был обновлен именно в том, что я пытаюсь заархивировать – Ageis

ответ

1

Проблема связана с объектами html внутри класса символов (класс символов представляет собой набор символов, вы не можете помещать строки внутри), последствия, строки, содержащие q, u, o, t, e, g или я преуспею.

Вместо этого вы можете использовать:

^(?=.*[0-9])(?=.*[a-z])(?=.*[A-Z])(?=.*[[email protected]_{}])\S{7,14}$ 

(класс символов для специальных символов укоротить с помощью диапазонов и таблицы ASCII)

+0

Извините. Это, в основном, еще один из моих впечатляющих копий и пасты! Я скопировал это из моего web.config, который, следовательно, основал xml, в противном случае зрительская студия жалуется. – Ageis

+0

@Ageis: это плохо: 2 ave 3 pater –

+0

huh ??? извините, не понял ваш комментарий. Если вы говорите, что плохо, что я ди. Я знаю, потому что ленив, и это понедельник. – Ageis

Смежные вопросы