编辑一个不是我的正则表达式,不知道如何根据需要调整它


Editing a regex that isn't mine, not sure how to adjust it for needs

我有一个为我写的密码正则表达式:

~^[a-z0-9!@#'$%'^&'*'(')]{8,16}$~i

应该匹配8-16个字符的字母数字字符串和符号。现在我需要删除最小和最大长度的要求,因为我需要分割错误消息的用户友好性-我试图只是拿出{8,16}部分,但它打破了它。我该怎么做呢?谢谢。

我认为您正在对太长或太短的字符串进行单独检查,并且此正则表达式仅确保没有无效字符。应该这样做:

~^[a-z0-9!@#$%^&*()]+$~i

+表示一个或多个*表示零个或多个;也许你用哪一个并不重要。

我也去掉了一些不必要的反斜杠;这些字符在字符类(即方括号内)中没有任何特殊含义。