正则表达式不接受正确的输入

Regular Expression does not accept correct inputs

我正在开发一个 Java 方法,用于检查用户输入是否有效。为此,我写了四个正则表达式来检查。前三个工作正常。最后一个,"most complex" 正则表达式,不接受值,应该接受。

我想确定用户输入了三种不同输入设置中的一种。

我的问题是定义,只接受 1-16 之间的数字。我的正则表达式接受 1-9,但不接受任何大于 9 的数字。

让我们以 "B" 为例,这是我的正则表达式:

 String regexB = "B[([1-9]{1})((1[0-6]){1})]";

我试图用我的表情做什么: 一个 "B",后跟一个 1-9 的单个数字,或者“1”和第二个 0-6 的单个数字。

我知道,这可能不是一个难题,但也许你们中的一个人可以通过尝试解决这个问题来避免我浪费一些时间。

谢谢你的期待。

我认为您的正则表达式无效。 尝试以下操作(以 B 为例)

B((1{1}[0-6]{1})|([1-9]{1}))
String regexB = "B([1][0-6]|[1-9])";
  • 一个数字 1 和 0-6 OR
  • 1 到 9 之间的数字
String regexB = "B([1-9]|([1][0-6]))";

编辑:哦...答案已经存在...

这里有一个工具可以帮助您:http://utilitymill.com/utility/Regex_For_Range

你的情况:[1-9]|1[0-6]