我是新來的正則表達式,我試圖在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