1

以下の形式のような文字列があります。

<pre>
===
RESULTS (means and 95% confidence intervals)
---
Total: 1607.3ms +/- 7.6%
---

3d: 82.7ms +/- 43.6%
cube: 38.1ms +/- 37.5% 
</pre>

次のような出力が必要です: Total: 1607.3

私はこのように使用しました:

var reg = /\w.*:\D.*[ms]/gi
var result = "mytext".match(reg);

しかし、「最後にミリ秒を回避する方法は?これの正規表現は何ですか?

4

6 に答える 6

0

/Total:\s*\d+\.\d+(?=ms)/あなたのためにそれをすべきです。

提案された他の回答と同様に、 Total: はテキストと一致します。ただし、このパターンは、"Total:" テキストの後の空白スペースに関してより柔軟であり、小数点の前後の数字の量に関してより柔軟です。最後の肯定的な先読みは、「ms」テキストに一致しますが、含まれません。

フィドル

http://refiddle.com/by/tim-schreiber/what-is-the-match-regex-for-string

お役に立てれば!

于 2013-10-18T16:44:29.030 に答える
0

' ' 以外のものをキャプチャ+:

([^+]+)
于 2013-10-18T14:20:39.413 に答える
0

MULTILINE スイッチがサポートされている場合は、次の正規表現を使用できます。

 /^Total: *[^ ]+/m

String#matchメソッドで。

于 2013-10-18T14:20:39.673 に答える
0
Total: [0-9]+(\.[0-9]{2})?    

動作します。

于 2013-10-18T14:20:52.287 に答える