正则表达式从字符串中提取大小

时间:2017-03-17 07:55:13

标签: regex

有这个输入字符串:

health status index              pri rep docs.count docs.deleted store.size pri.store.size
yellow open   test1                 5   1     222173            0     43.8gb         43.8gb
yellow open   test2                 5   1      27142           10     36.6mb         36.6mb

我使用以下正则表达式提取一些信息:

^(\w+)\W+\w+\W+(\w+)\W+\w+\W+(\w+)\W+(\w+)\W+(\w+)\W+(\w+)~m

正如您所看到的,从最后一组(Group 6)开始,我只是第一个点(43)之前的数字。

如何更正,以便最后一组取整个数字?我的意思是,如果没有43.836.6,请gbmb

演示: https://regex101.com/r/rMfWC4/3

提前致谢

2 个答案:

答案 0 :(得分:2)

您可以添加替换(\d+\.\d+|\w+)以匹配digit(s) + . + digit(s)或(|alphanum/_字符:

^(\w+)\W+\w+\W+(\w+)\W+\w+\W+(\w+)\W+(\w+)\W+(\w+)\W+(\d+\.\d+|\w+)
                                                      ^^^^^^^^^^^^^

请参阅regex demo

答案 1 :(得分:1)

^(\w+)\W+\w+\W+(\w+)\W+\w+\W+(\w+)\W+(\w+)\W+(\w+)\W+(\w+\W+\d+)

嗨,你几乎在那里添加非数字捕获将捕获点(。)或任何特殊字符,并添加\ d将再次捕获数字+符号将捕获数字,如果它包含多个。    我希望这会对你有所帮助。祝你好运。