gpt4 book ai didi

java - 正则表达式 a-z 0-9 但不仅仅是数字

转载 作者:搜寻专家 更新时间:2023-11-01 01:25:38 27 4
gpt4 key购买 nike

尝试仅匹配长度为 10-30 个字符且字符串中只有 a-z 和 0-9(但不仅限于数字)的字符串。似乎工作除非字符串以数字开头然后它失败。不确定\D 应该不仅修复数字

static final Pattern UNIQUE_ID_PATTERN = Pattern.compile("^\\D[A-Za-z0-9_-]{10,30}$");
UNIQUE_ID_PATTERN.matcher("1eeeeeeeee333e").matches(); // Does not work
UNIQUE_ID_PATTERN.matcher("eeeeeeeee333e").matches(); // Works

最佳答案

\D 速记类表示任何非数字符号。您应该将其从模式中删除(使其变为 "^[A-Za-z0-9_-]{10,30}$"),以便 匹配 到返回 true,因为 11eeeeeeeeee333e 中的一个数字。

如果你想放置一个限制(字符串不能只包含数字)使用锚定的前瞻:

^(?![0-9]+$)[A-Za-z0-9_-]{10,30}$

这里是 a demo

或者,使用 i 修饰符使模式不区分大小写的缩短版本:

(?i)^(?![0-9]+$)[A-Z0-9_-]{10,30}$

关于java - 正则表达式 a-z 0-9 但不仅仅是数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32266173/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com