【问题标题】:Regex command to get string after second space正则表达式命令在第二个空格后获取字符串
【发布时间】:2021-06-22 14:39:47
【问题描述】:

我输入如下:

Investments Total : 47,842.87 48,901.25 1,042.22 49,943.47 99.9794 2,100.60 2,100.60 0.00 0.00 0
Investments Total : 47,842.87 16,901.25 1,042.22 49,943.47 99.9794 2,100.60 2,100.60 0.00 0.00 0

输出目标是

48,901.25
16,901.25

意思是在Investments Total :之后得到第二个空格值

我确实尝试使用以下命令

(?<=Investments Total :)\s\S+

但结果是空格后的第一个值。

【问题讨论】:

  • 这取决于支持的语言或工具,但(?&lt;=Investments Total :\s\S+\s)\S+ regex101.com/r/sZz984/1 或带有捕获组Investments Total :\s\S+\s(\S+) regex101.com/r/PHpxOw/1
  • 感谢帮助管理使用命令 (? 从命令获取输出
  • 仍然不是“命令”。像grep 这样的命令在这里可能有意义,但我们只能推测您实际使用的是什么(并且该特定正则表达式不适用于普通的grep;尽管如果您有GNU grep,它可以使用@ 987654332@).

标签: regex command


【解决方案1】:

你可以使用

(?<=Investments Total :\s\S+\s)\S+

模式匹配:

  • (?&lt;= 正面向后看,断言左边是什么
    • Investments Total : 字面匹配
    • \s\S+\s 匹配一个空白字符、1+ 个非空白字符和一个空白字符
  • ) 近距离观察
  • \S+ 匹配 1+ 个非空白字符

Regex demo

【讨论】:

    猜你喜欢
    • 2022-12-06
    • 2017-05-06
    • 2018-04-30
    • 1970-01-01
    • 2021-02-23
    • 2019-10-29
    • 1970-01-01
    • 2012-12-06
    • 1970-01-01
    相关资源
    最近更新 更多