正则表达式(java) - 从有效负载中提取

时间:2014-08-18 22:48:06

标签: java regex

000klkj1-041-3501-0071-00000kjhh05601 56hj1 66553 78 546623

有效负载每次都遵循相同的结构,并且我试图找到位于3个空格(或3个空格?)之后的数值(在这种情况下" 78")。数字(最多1或2个数字)总是在3个空格之后;这是多个有效载荷之间唯一的共性。除了\ d +,我到目前为止还没有。非常感谢任何/所有帮助。

2 个答案:

答案 0 :(得分:0)

很难理解你的问题,但如果你想在3个空格后获得数字,你可以使用这个正则表达式:

^(?:\S*\s+){3}(\d+)

<强> Working demo

enter image description here

匹配信息:

MATCH 1
1.  [50-52] `78`
MATCH 2
1.  [114-116]   `78`

答案 1 :(得分:0)

如果您的输入行包含由一个或多个空格组分隔的字段,则最简单的方法是使用split而不是正则表达式:

String[] fields = inputString.split("\\s+");

现在fields[0]是第一个字段,fields[1]是第二个字段,等等,所以fields[3]应该为您提供所需内容。