You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

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

用正则表达式判断数字字符串是否包含0-9每个数字至少一次

当然可以做到!正则表达式通过**正向预查(positive lookahead)**的特性,就能逐一验证0到9的每个数字是否都在目标字符串里出现过。

具体实现的正则表达式

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

拆解一下这个正则的逻辑

  • ^$:锚定字符串的开头和结尾,保证我们检查的是整个目标字符串,不会遗漏任何部分
  • (?=.*x):这是正向预查的核心语法,意思是「从当前位置开始,往后能找到任意数量的字符(.*)加上数字x」。我们连续写10个这样的预查,分别对应0到9的每个数字,确保每个数字都至少出现一次
  • .+:匹配整个非空字符串——因为前面的预查已经确认了所有数字都存在,这里只要保证字符串不是空的就行

实际测试例子

  • 对于你给出的例子 "12354789556":这个字符串里没有0,所以正则匹配会失败,符合预期
  • 如果是 "0123456789" 或者 "1029384756" 这类包含所有数字的字符串,正则会匹配成功

需要注意的是,主流的正则引擎(比如JavaScript、Python、Java、PHP里的正则模块)都支持这种写法,完全可以放心使用。

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

火山引擎 最新活动