REGEX 匹配 10 位数字且必须包含数字 4

标签 regex python-3.x

我尝试编写一个正则表达式来匹配 10 位数字,它必须包含数字 4。例如:

s=['123456abc','abcisjgm','1234567895','1231231231']
for i in s:
    if re.findall(r'[4]\d{9}\b',i):
        print(i, "is valid")
    else:
        print(i, "is not valid")

输出如下,

123456abc is not valid
abcisjgm is not valid
1234567895 is not valid -----> this should be valid
1231231231 is not valid

最佳答案

您可以在 re.search 中使用以下模式:

^(?=\d*?4)\d{10}$

参见 regex demo

  • ^ - 字符串开头
  • (?=\d*?4) - 0 个或多个数字后必须有 4,尽可能少
  • \d{10} - 十位数字
  • $ - 字符串结尾。

参见 Python demo:

import re

s=['123456abc','abcisjgm','1234567895','1231231231']

for i in s:
    if re.search(r'^(?=\d*?4)\d{10}$', i):
        print(i, "is valid")
    else:
        print(i, "is not valid")

输出:

123456abc is not valid
abcisjgm is not valid
1234567895 is valid
1231231231 is not valid

关于REGEX 匹配 10 位数字且必须包含数字 4,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61462760/

相关文章:

python - python3 上的打印语句不再登录 Google Cloud Platform

c++ - C++中的正则表达式问题

json - jq:如何根据子字符串匹配更新值?

python - 如何为 python3 安装 netfilterqueue?

python - 无法在 python 3 中 pickle lambda 函数

Python 通过 JSON 迭代数据

javascript - 正则表达式 JavaScript 问题

javascript - 匹配第一个和最后一个字符的正则表达式

javascript - 多个正则表达式子模式的可选匹配

python - 命名空间的概念,全局,局部相对于导入