2017-04-23 26 views
-1

我有以下測試字符串。我喜歡提取200381長文本中的3位數字的正則表達式

2010-08-12 00:00:01 69.143.116.98 - W3SVC106 STREAM 207.22.66.152 80 GET /includes/scripts.js - 200 0 2258 381 94 HTTP/1.1 www.mercymed.com的Mozilla/4.0 +(兼容; MSIE + 7.0 + +的Windows NT + 6.0 + + WOW64 + GoogleT5 + SLCC1; + NET + CLR 2.0.50727 + + +媒體中心+ PC + 5.0; + NET + CLR + 3.5.30729; +。NET + CLR + 3.0.30618; +。NET4.0C) - http://www.mercymed.com/

我用下面的模式,但沒有運氣。 (?<=\s)[0-9]{3}

任何幫助?

回答

1

我會提前用積極的外觀和向後看至斑點顯空格。

(?<=\s)\d{3}(?=\s) 

regexstorm results

+0

謝謝,這正是我一直在尋找的。 –

1

@Roman是正確的 「位置區」,只是微小的更正 -

我希望第一個數字看起來是響應代碼,所以它可以肯定是3位數。 第二數量可以是3個以上的數字
- (\ d {3})+(\ d +)\ d + HTTP
+是貪婪我們應該追加。?除去它的貪婪行爲

正則表達式應該是
- (\ d {3})+? (\ d +)\ d + HTTP

Regex demo