繁体   English   中英

用于匹配3个和16个字符的Python正则表达式

[英]Python regular expression for matching 3 and 16 characters

我是正则表达式的新手,我正试图在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缩短它:

'{0}({0}|-){1}{0}'.format('[a-zA-Z0-9]','{1-14}')

如果对整个查询固有的不区分大小写的要求,@ poke的版本会更好。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM