我收到了以下字符串:
[13:49:38 INFO]:总体:平均滴答时间: 4.126 ms。平均TPS: 的 20.000
应该匹配粗体数字,每个数字都放在自己的捕获组中。
我当前的表达式是(\d+.\d{3})
,其匹配 4.126 如何才能将我的20.000现在与第二个捕获组匹配?再次添加相同的捕获组使它找不到任何东西。所以我基本上需要的是,“搜索第一个数字,然后忽略所有内容,直到找到下一个数字。”
答案 0 :(得分:1)
您可以使用类似的内容:(\d+\.\d{3}).+?(\d+\.\d{3})$
(示例here)这实际上是您的正则表达式(加上一个小修复)两次,不同之处在于它也会再次查找相同的模式字符串的结尾。
另一个小注,你的正则表达式包含一个潜在的问题,你将小数点与句点字符匹配。在正则表达式语言中,句点字符表示任何字符,因此您的表达式也匹配4s222
。在前面添加额外的\
会使正则表达式引擎视为实际角色,而不是特殊角色。