python - 正则表达式必须包含且只能包含

标签 python regex

我想要一个 python 的正则表达式,它匹配一个必须包含 4 位数字的字符串,它不能包含除“-”或“.”之外的任何特殊字符,并且它只能包含大写字母。我知道以下匹配 4 位或更多数字的文本。我将如何添加其余条件?

[0-9]{4,}

一个例子是: ART-4.5-11不错,ART5411不错,76543不错,但是aRT-4!5-11 不好,因为它包含一个小写字符和一个不是“-”或“.”的特殊字符

最佳答案

模式:

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'>

关于python - 正则表达式必须包含且只能包含,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49040641/

相关文章:

python - 在 Web2py 中访问安装在 Pythonanywhere 上的模块

Python队列组合

python - IntegerField 只接受 11 位数字(不小于 11,不大于 11)

regex - Ansible - 使用正则表达式检查文件中是否存在字符串

regex - 整数值的 MongoDB 正则表达式搜索

java - 查找分隔符并忽略引号内的分隔符

python - 在 VS Code 终端中显示耗时

python - PyCharm 远程调试

javascript - 使用 sum、map 和 lambda 将 Python 转为 JavaScript

jquery - jquery数据表中如何四舍五入到小数点后两位?