我希望python有一个正则表达式,该表达式与必须包含4位数字的字符串匹配,它可能不包含除"-“或".”以外的任何特殊字符,而且可能只包含大写字母。我知道下面的文字与4位数或更多数字匹配。我将如何添加其余的标准?
[0-9]{4,}
一个例子是:ART-4.5-11是好的,ART5411是好的,76543是好的,但是aRT-4!5-11是坏的,因为它包含一个小写字符和一个特殊的字符不是"-“或”。
发布于 2018-03-01 00:08:02
模式:
pattern = '^[A-Z.-]*(\d[A-Z.-]*){4,}$'^ -单词的开头[A-Z.-]* -任意数量的非数字“好字符”:字母、句点或破折号。(\d[A-Z.-]*){4,} -4或更多的数字组和其他“好字符”;此部分至少提供4位数字。$ -单词的结尾示例:
re.match(pattern, "ART-4.5-11")
# <_sre.SRE_Match object; span=(0, 10), match='ART-4.5-11'>
re.match(pattern, "ART5411")
# <_sre.SRE_Match object; span=(0, 7), match='ART5411'>
re.match(pattern, "aRT-4!5-11") # No match
re.match(pattern, "76543")
# <_sre.SRE_Match object; span=(0, 5), match='76543'>https://stackoverflow.com/questions/49040641
复制相似问题