我是新来的正则表达式,我试图在Python中产生以下条件。匹配3和16个字符的Python正则表达式
字符串和字符与存在 含有一个连字符字母数字或(但不能作为第一个或最后一个字符)。
这是我到目前为止有:
rule = re.compile(r'(^{0,16})')
if rule.search(value):
msg = u"Does not validate"
raise ValidationError(msg)
我是新来的正则表达式,我试图在Python中产生以下条件。匹配3和16个字符的Python正则表达式
字符串和字符与存在 含有一个连字符字母数字或(但不能作为第一个或最后一个字符)。
这是我到目前为止有:
rule = re.compile(r'(^{0,16})')
if rule.search(value):
msg = u"Does not validate"
raise ValidationError(msg)
您可以使用format
缩短它:
'{0}({0}|-){1}{0}'.format('[a-zA-Z0-9]','{1-14}')
@捅的版本更好如果不区分大小写的要求是内在整个查询。
机器制造机器。多么乖乖! – georg
re.compile('[A-Z0-9][A-Z0-9-]{1,14}[A-Z0-9]', re.I)
这将在开始和结束时接受字母数字字符,并要求在1之间太14个字母数字或连字符的字符。
@ User7 - 请注意,连字符*必须是* []'表达式中的最后一个字符,以便与其匹配。 – Elazar
您正在寻找该行的开始,连续0-16次。 – Elazar