如何使用正则表达式检查字符串中的重复字符?

用户名

我正在用Java编写琐事游戏,除验证用户答案的​​一部分外,我已完成所有工作。因此,基本上,我将提示用户问题和可能的答案,然后用户将输入他们的答案。现在,我正在尝试检查他们的答案,然后再检查是否正确,因此如果错误,我可以提示他们输入其他答案。规则是他们的答案必须是一个从零到四个字符的字符串,只能使用1-4位数字,并且不能重复字符。因此1234有效,24有效,321有效,589无效,abc无效,111无效,1233无效。到目前为止,除了重复的字符外,我已经涵盖了所有条件。起初我用

if (answer.matches("^[1-4]{0,4}$")) { // valid check if correct

这会处理所有重复项,但重复项除外。接下来我尝试了

if (answer.matches("^1?2?3?4?$")) { // valid check if correct

如果用户以升序输入数字(即123、234、24、12、2344等),这将处理重复项。唯一的问题是,如果用户输入的内容类似于432,即使它输入无效,也将被视为无效应该被认为是有效的。我知道为什么这与我的正则表达式不匹配,但是我能想到的唯一其他解决方案是列出所有可能的解决方案,但是显然我不会在if语句中放入24个条件。有什么我可以做的正则表达式来解决的吗?我知道我可以用蛮力方式做到这一点,但是我宁愿有一个高效的正则表达式来解决这个问题。谢谢。

阿努巴瓦

您可以使用以下基于loookahead的正则表达式:

\b(?:([1-4])(?![1-4]*\1)){1,4}\b

正则演示

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

检查字符串是否与JS中的正则表达式匹配

如何检查字符串是否为正则表达式

使用Java中的正则表达式检查字符串中的特殊字符

检查字符串是否与Bash脚本中的正则表达式匹配

检查字符串是否与ruby中的正则表达式匹配的最快方法?

如何使用正则表达式-Javascript检查字符串中是否存在“未定义”测试

正则表达式检查字符串中是否重复字符

使用正则表达式检查字符串中的特定字符

正则表达式检查字符串中的特定字符

正则表达式检查字符串中的特定模式

如何检查字符串是否与正则表达式匹配

正则表达式检查字符串中的3个相同字母?

使用正则表达式检查字符串错误中的pangram

使用正则表达式检查字符串以获取有效的CSS

检查字符串的正则表达式以

如何使用正则表达式检查字符串中的序列

在iOS中如何使用布尔结果对正则表达式检查字符串

使用正则表达式检查字符串“是” javascript代码

如何使用正则表达式删除字符串中的重复字符?

python正则表达式检查字符串中单词的开始和结束

使用正则表达式检查字符串中的条件

检查字符串是否与python中的正则表达式完全匹配

正则表达式-如何检查字符串是否以给定字符开始或结束?

如何检查字符串包含字母或数字-正则表达式c#

C中的正则表达式,检查字符串是否包含特定字符

如何使用正则表达式检查字符串是否仅包含特定字符

使用正则表达式检查字符串的子序列

使用正则表达式检查字符串的开头是否与模式匹配

正则表达式问题(检查字符串是否有重复)