You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何编写正则表达式判断字符串是否包含0-9全部数字(顺序不限)

如何用正则表达式判断字符串包含0-9所有数字?

当然可以!我来帮你写一个能满足需求的正则表达式,顺便给你拆解清楚逻辑~

核心思路

要判断字符串是否包含0-9的所有数字(顺序不限),本质是要确保每个数字0-9都至少在字符串中出现一次。正则里的正向预查(positive lookahead)刚好能帮我们实现这种“同时满足多个条件”的检查。

最终正则表达式

^(?=.*0)(?=.*1)(?=.*2)(?=.*3)(?=.*4)(?=.*5)(?=.*6)(?=.*7)(?=.*8)(?=.*9).+$

正则逻辑拆解

  • ^:匹配字符串的起始位置,确保我们从开头就开始检查
  • (?=.*d):这是正向预查语法,d代表0-9中的每个数字。它的作用是:当前位置往后,必须能找到至少一个数字d(.*表示任意非换行字符可以出现任意次数)
  • 连续写10个这样的预查条件,就要求字符串同时包含0、1、2...9所有数字
  • .+:匹配整个字符串的内容(至少有一个字符,避免空字符串误判)
  • $:匹配字符串的结束位置,确保我们检查的是整个字符串

代码示例(以Python为例)

如果你想用代码验证,可以参考下面的实现:

import re

def contains_all_digits(input_str):
    # 定义正则模式
    digit_pattern = r'^(?=.*0)(?=.*1)(?=.*2)(?=.*3)(?=.*4)(?=.*5)(?=.*6)(?=.*7)(?=.*8)(?=.*9).+$'
    # 使用fullmatch检查整个字符串是否符合模式
    return bool(re.fullmatch(digit_pattern, input_str))

# 测试你的示例字符串
test_example = "01230912747238507156"
print(contains_all_digits(test_example))  # 输出: True

# 测试缺少数字的情况
missing_digit_str = "012345678"
print(contains_all_digits(missing_digit_str))  # 输出: False

补充说明

  • 如果你的字符串可能包含换行符,可以把正则里的.换成[\s\S](匹配任意字符,包括换行),或者在使用正则时加上re.DOTALL标志
  • 除了正则,其实也可以用集合的方法快速判断:把字符串转成集合后,检查是否包含{'0','1','2','3','4','5','6','7','8','9'},不过既然你明确要正则,上面的方案就完全够用啦~

内容的提问来源于stack exchange,提问作者Abhisek Roy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 04:26:04