gpt4 book ai didi

regex - 如何验证字符串中字符的重复

转载 作者:行者123 更新时间:2023-12-02 08:52:54 26 4
gpt4 key购买 nike

我必须验证一个可以包含 1 到 7 之间数字的字符串,允许的最大长度为 7。

([1-7]){0,7}

条件:字符串中数字不能重复。

例如:

12345  true;
11345 false (1 is repeated) ;
98014 false (0,8,9 are invalid);

最佳答案

这可以在单个正则表达式中完成:

^(?!.*(.).*\1)[1-7]{0,7}$

先行断言会检查字符串中的所有字符是否唯一,而实际的正则表达式仅允许 1 到 7 之间的 0-7 位数字。

在 Java 中:

boolean foundMatch = subjectString.matches("^(?!.*(.).*\\1)[1-7]{0,7}$");

当然,您可以通过将每个 . 替换为 [1-7] 来加快前瞻失败速度,但为了清楚起见,我选择不这样做。 (如果使用 .matches() 方法,则可以删除 ^$ anchor ,因为在这种情况下它们是隐式的)。

关于regex - 如何验证字符串中字符的重复,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7228602/

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