首页 > 解决方案 > 正则表达式允许除字符 0 之外的所有字符

问题描述

我想创建一个正则表达式来允许数字和/或字符,但它本身不允许 0(零)。

到目前为止,这就是我在玩 regex101.com 时所拥有的

/^([^0])([a-z1-9])*$/img

它与最后 3 项匹配,但我也需要它与 00 匹配。

0
00
12
22344
sometext

我该怎么做,我怎么能写“如果它自己是 0 我不想要它,但我想要它的任何其他东西”?

标签: regex

解决方案


您可以使用否定前瞻来禁止0,然后在匹配中匹配 1+ 字母数字以允许匹配0s:

^(?!0$)[a-z\d]+$

正则表达式演示

  • (?!0$)在开始位置后为负前瞻,因此如果仅0出现在输入中,我们将无法匹配。
  • [a-z\d]+匹配 1 个或多个小写字母或数字。

推荐阅读