2015-09-28 112 views
0

我得到了下面的字符串:正則表達式如何在單獨的匹配組中匹配兩個相似的數字?

[13時49分38秒INFO]:整體:平均滾動時間:4.126毫秒。平均TPS: 20.000

大膽的數字應該是匹配的,每到自己的捕獲組。

我目前的表情是(\d+.\d{3}),它匹配4.126如何將我的20.000匹配到第二個捕獲組?再次添加相同的捕獲組使其找不到任何東西。所以我基本需要的是,「搜索第一個數字,然後忽略所有內容,直到找到下一個數字。」

+1

爲什麼不在你的(祕密?)編程語言中使用'g'(「global」)標誌或功能等價物? – usr2564301

回答

1

您可以使用類似如下的東西:(\d+\.\d{3}).+?(\d+\.\d{3})$(示例here),它基本上是您的正則表達式(加上一個小修正)兩次,區別在於它還會在字符串的末尾再次查找相同的模式。

另一個小問題,你的正則表達式包含一個潛在的問題,其中你將小數點與週期字符相匹配。在正則表達式語言中,週期字符表示任意字符,因此您的表達式也將匹配4s222。在前面添加一個額外的\使正則表達式引擎對待是一個真實的角色,而不是一個特殊的角色。

+0

感謝您的評論有幫助。基本上'''。+?'''做了訣竅。 – Flatron