我使用模式"(?mis)^foo\\s+(\\d+)\\s+bar\\s+(\\d+)"
来搜索我的输入。我真正应该做的是在输入行的末尾提取一个或多个数字的列表。即,如果输入"foo 10 bar 1 2 3"
,我应该处理10& 1然后10& 2,10&等等等等。我尝试使用" {1,}"在模式结尾处有各种变化(while (match.find()) {}
没有成功。
我如何完成我需要做的事情?
由于
答案 0 :(得分:0)
使用此正则表达式分别提取固定部分和所有数字:
(?mi)^foo\\s+(\\d+)\\s+bar((?:\\s+\\d+)*)$
然后在group(2)
上使用:
String[] nums = matcher.group(2).split("\\s+");
获取bar
之后的所有数字。