正则表达式长度约束



这是我当前的正则表达式。 (至少需要一个字母、数字和特殊字符。长度在 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$
^^^^^^  ^^^^^^^^^^^

最新更新