java - 正则表达式匹配整数然后空格的连续模式

标签 java regex

我要求用户通过 Java 中的 Scanner 输入,现在我想使用正则表达式解析他们的选择。本质上,我向他们展示了一个枚举的项目列表,然后他们输入要选择的项目的数字,并用空格分隔。这是一个例子:

1   yorkshire terrier
2   staffordshire terrier
3   goldfish
4   basset hound
5   hippopotamus 

Type the numbers that correspond to the words you wish to exclude: 3 5

枚举的项目列表可以是几个元素,也可以是数百个。我当前使用的正则表达式看起来像这样 ^|\\.\\s+)\\d+\\s+,但我知道这是错误的。我还不完全理解正则表达式,所以如果你能解释它在做什么,那也会很有帮助!

最佳答案

Pattern pattern = new Pattern(^([0-9]*\s+)*[0-9]*$)

正则表达式的解释:

  • ^:输入开始
  • [0-9]:仅数字
  • '*':任意数量的数字
  • \s:空格
  • '+':至少一个空格
  • '()*' :任意数量的该数字空格组合
  • $:输入结束

这会将以下所有输入视为有效:

  • “1”
  • “123 22”
  • “123 23”
  • “123456 33 333 3333”
  • “12321 44 452 23”

等等

关于java - 正则表达式匹配整数然后空格的连续模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23089348/

相关文章:

java - 如何确定在检索 Excel 文件样式表时抛出的 Zip Bomb 错误是否合法?

regex - 如何在 Smalltalk 正则表达式中匹配 [ ?

javascript - 正则表达式获取带空格的字符串

python match 只捕获第一组和最后一组——我是不是误会了什么?

java - 在 WAS 9 上使用 Apache HttpClient 和 IBM Jsse2 时出现 SSLHandshakeException

java - Spring Security 基本身份验证提示出现

java - 使用 Jersey 在 POST 中检索 JsonObject

java - 为什么我看到不请求 Window.FEATURE_SUPPORT_ACTION_BAR?

javascript - 如何在 Javascript + jquery 中创建正则表达式

用于分割的 Java 空格和换行符正则表达式