首页 > 解决方案 > 快速一,匹配任何大于 750 的数字的合适正则表达式是什么?在下面的测试内容中?

问题描述

什么是适当的正则表达式来匹配下面最后一行文本中大于“750 active”的任何数字?

=============================================================================
c0000000a7470b30 Y--P--- 4207362  weblogic -        c000000098078f98 0    1     1832876  0
c0000000a74853f0 Y--P--- 4376431  krizzsa  LL2CE414 c0000000a19479b8 0    8     70173    170
c0000000b3a1f2c8 Y--P--- 3996541  weblogic -        c0000000acd54f90 0    1     64112    0
c0000000b3a22418 Y--P--- 4371951  tinpatel tK       c000000098385b70 0    1     62       0
c0000000b3a286b8 B--PR-- 4385816  ayaw     SL5CG752 c00000001b0bdde0 0    5     14452    701
c0000000b3a2afd0 Y--P--- 4383560  sognenov t3       c000000099afe900 0    1     100      0
c0000000b3a2b808 Y--P--- 4368082  wenpli   66       c00000009e6f8260 0    1     461      0
c0000000b3a2c878 Y--P--- 4228342  sarbrar  tc       c0000000a62da668 0    1     0        0
c0000000b3a2f9c8 Y--P--- 4384060  weblogic -        c0000000a2deb910 0    1     0        0
c0000000b3a35430 Y--P--- 4383243  nakahmed t1       c00000009e0b9ce8 0    1     17       0
c0000000b3a38580 Y--P--- 3937012  mvvinay  76       c0000000a162a888 0    1     0        0
c0000000b3a3d7b0 Y--P--- 616042   neminhas LD2UA442 c0000000aea25ca8 0    2     0        0
c0000000b3a43218 Y--P--- 4383236  nakahmed t1       c0000000981b4570 0    1     37       22
c0000000b3a473d8 Y--P--- 4382647  viwang   2UA40922 c0000000a268a2d0 0    7     75275    4856
 412 active, 2176 total, 441 maximum concurrent
================================================================

在最后一行中,如果与数据库的活动连接超过 750,我们需要对其进行匹配并进行进一步处理。那么有人可以帮忙处理正则表达式吗?请注意,最后一行的开头有一个空格。

标签: regexpcre

解决方案


如果是 Perl,则无需对所有内容都使用匹配。

if (/ ([0-9]+) active/ && $1 > 750) {
    print "Matching!\n";

如果你需要一个正则表达式,它是

 /^\ (?:  7 (?:   5 [1-9]
             | [6-9][0-9])
       | [89]  [0-9]{2}
       | [1-9][0-9]{3,})\ active/x

或不久

/^ (?:7(?:5[1-9]|[6-9][0-9])|[89][0-9]{2}|[1-9][0-9]{3,}) active/

推荐阅读