这是我当前的正则表达式。 (至少需要一个字母、数字和特殊字符。长度在 8 到 100 之间(
^(?=.*([a-zA-Z]))(?=.*d)(?=.*(_|[^w])).+{8,100}$
我想防止以空格开头或结尾的字符串。 为此,我尝试了
^(?=.*([a-zA-Z]))(?=.*d)(?=.*(_|[^w]))[^s].+[^s]{8,100}$
但{8, 100}
仅适用于最后[^s]
. 我该如何解决它?
不要匹配.+{8,100}
(这不是有效的正则表达式语法(,而是匹配一个非空格,后跟 6 到 98 个字符,后跟另一个非空格。您可以使用S
代替[^s]
,同样,可以使用W
而不是[^w]
:
^(?=.*([a-zA-Z]))(?=.*d)(?=.*(?:_|W))S.{6,98}S$
^^^^^^ ^^^^^^^^^^^