【问题标题】:Regex to extract size from a string正则表达式从字符串中提取大小
【发布时间】:2017-03-17 07:55:13
【问题描述】:

有这个输入字符串:

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) 之前的数字。

如何更正它以便最后一组取整个数字?我的意思是,在没有gbmb 的情况下使用43.836.6

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

提前致谢

【问题讨论】:

标签: regex


【解决方案1】:

您可以添加替换 (\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

【讨论】:

    【解决方案2】:
    ^(\w+)\W+\w+\W+(\w+)\W+\w+\W+(\w+)\W+(\w+)\W+(\w+)\W+(\w+\W+\d+)
    

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

    【讨论】:

      猜你喜欢
      • 2014-08-25
      • 1970-01-01
      • 1970-01-01
      • 2021-10-19
      • 2018-02-23
      • 1970-01-01
      • 2014-10-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多