Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我是正则表达式的新手,我正在尝试在 Python 中生成以下条件。
长度介于3 到 16 个字符之间且为字母数字或包含连字符(但不作为第一个或最后一个字符)的字符串。
这是我到目前为止所拥有的:
rule = re.compile(r'(^{0,16})') if rule.search(value): msg = u"Does not validate" raise ValidationError(msg)
re.compile('[A-Z0-9][A-Z0-9-]{1,14}[A-Z0-9]', re.I)
这将在开头和结尾接受字母数字字符,并且在两者之间需要 1 或 14 个字母数字或连字符字符。
您可以使用format它来缩短它:
format
'{0}({0}|-){1}{0}'.format('[a-zA-Z0-9]','{1-14}')
如果不区分大小写的要求是整个查询所固有的,@poke 的版本会更好。