正则表达式,用于长文本中的3位数字

时间:2017-04-23 03:58:34

标签: regex

我有以下测试字符串。使用RegEx我想提取200381

  

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}

任何帮助?

3 个答案:

答案 0 :(得分:2)

使用以下正则表达式模式:

- (\d{3}) .+ (\d{3}) \d+ HTTP

https://regex101.com/r/XB5p2X/2

-HTTP用于表示所需数字的“位置区域”

答案 1 :(得分:1)

@Roman是正确的,只是微小的修正 -

  

1 我希望第一个数字似乎是响应代码,所以它可以肯定是3位数。   第二个数字可能超过3位数    - (\ d {3})。+(\ d +)\ d + HTTP
   2 。+贪婪我们应该追加?消除它的贪婪行为

正则表达式应该是 - (\ d {3})。+? (\ d +)\ d + HTTP

Regex demo

答案 2 :(得分:1)

我会使用积极的向前看并向后看以发现空白。

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

regexstorm results