如何在 BASH 中反转正则表达式比较
How to reverse Regex comparison in BASH
如何反转我的正则表达式比较结果
问题是正则表达式无效。具体来说,括号表达式 ([a-z0-9-_]
) 无效,因为它在错误的位置包含破折号。
要在方括号表达式中包含文字破折号,您需要将其放在表达式的开头 ([-otherchars]
)、结尾 ([otherchars-]
) 或范围的结尾([*--]
将匹配 C 语言环境中的“*”、“+”、“,”和“-”)。您的括号表达式包括 0-9-_
,这看起来像两个范围粘在一起,并且无效。
要修复它,只需将“-”移动到括号表达式的开头或结尾:
USERNAME_REGEX="^[a-z0-9_-]{2,15}$" # or
USERNAME_REGEX="^[-a-z0-9_]{2,15}$"
如何反转我的正则表达式比较结果
问题是正则表达式无效。具体来说,括号表达式 ([a-z0-9-_]
) 无效,因为它在错误的位置包含破折号。
要在方括号表达式中包含文字破折号,您需要将其放在表达式的开头 ([-otherchars]
)、结尾 ([otherchars-]
) 或范围的结尾([*--]
将匹配 C 语言环境中的“*”、“+”、“,”和“-”)。您的括号表达式包括 0-9-_
,这看起来像两个范围粘在一起,并且无效。
要修复它,只需将“-”移动到括号表达式的开头或结尾:
USERNAME_REGEX="^[a-z0-9_-]{2,15}$" # or
USERNAME_REGEX="^[-a-z0-9_]{2,15}$"