2011-11-20 58 views
0

我會得到與解析txt文件刺痛,我的字符串是:正則表達式使用JavaScript

[INFO] Total time: 12 minutes 10 seconds 

我需要的只是 「十二分10秒」

我的表達是:

/Total time: [0-9]* minute[a-z]* [0-9]* second[a-z]*/ 

它完美的作品,但如果刺只有1分鐘它不起作用...

如何得到所有的刺痛後r「總時間:」?

+0

這看起來太熟悉 – Esailija

+0

,這不是一個非常有用的評論,@Esailija –

+0

@KaeVerens,我發誓我看到了一模一樣的問題,正則表達式和字符串匹配短短數天前:d無法雖然找到它,但它並沒有得到更多的重複:P – Esailija

回答

2

試試這個:

/Total time: ([0-9]* minutes?)?(?[0-9]* seconds?)*/ 

你需要一個?匹配0或1的前面。

+0

我喜歡你的解決方案,然後我自己:總時間:[0-9] *分鐘[a-z] * [0-9] *秒[a-z] * | [0-9] *分鐘[a-z] * – Grrbrr404

+0

太棒了!但是..如果字符串只包含秒鐘呢?爲前。總時間:22 sedonds? –

+0

與'?'只有幾分鐘相同。看到更新的代碼 –

1

讓我們說該行是line

line=line.replace(/^\[INFO\] Total time: /, ''); 
2

你可以把那部分秒鐘到一個分組,並使其通過可選的「?」

/Total time: [0-9]* minutes?([0-9]* seconds?)?/ 
+0

+1是第一個在「分鐘」和「秒」中修復可選「s」的人。 – nnnnnn