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



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

我想确保用户输入三个不同的输入设置之一。

  • 一到六个" L",其次是1-16的数字
  • 一到六个" R",其次是1-16的数字
  • 一个B,然后是1-16的数字

我的问题是定义,只有1-16的数字才被接受。我的正则表达方式是接受1-9,但不接受9。

以上的任何数字。

让我们以" b" - casten,而不是我的正则表达式:

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

我试图用自己的表达方式:一个" b",其次是1-9的单个数字或一个" 1",第二个数字和第二个数字。

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

感谢您。

String regexB = "B([1][0-6]|[1-9])";
  • b
  • 数字1和0-6
  • 1至9之间的数字

我认为您的正则是无效的。尝试以下(示例)

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

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

这是一种可以帮助您的工具:http://utilitymill.com/utility/regex_for_range。

在您的情况下:[1-9]|1[0-6]

相关内容

  • 没有找到相关文章