Быстрый один, что является подходящим регулярным выражением, чтобы соответствовать любому числу больше 750?в приведенном ниже тестовом содержании? - PullRequest
0 голосов
/ 14 июня 2019

Какое регулярное выражение соответствует любому числу, большему чем "750 активных" в тексте ниже в последней строке?

=============================================================================
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, нам нужно сопоставить его и выполнить дальнейшую обработку. Так может кто-нибудь помочь с регулярным выражением? Обратите внимание, что в начале последней строки есть пробел.

Ответы [ 2 ]

2 голосов
/ 14 июня 2019

Если это 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/
1 голос
/ 14 июня 2019

Возможно, это не лучшая идея, но, если нам, возможно, понадобится, возможно, наше выражение будет:

^\h*(7[5-9]\d|[89]\d\d|[1-9]\d{3,})\h+active\b
((7[5-9]\d|[89]\d\d|[1-9]\d{3,})\sactive)
((7[5-9]\d|[89]\d\d|[1-9]\d{3,})\s+active)
((7[5-9]\d|[89]\d\d|[1-9]\d{3,}) active)

по совету bobble-bubble ,

DEMO

или что-то похожее на:

([7][5-9][0-9]|[8-9][0-9][0-9]|[1-9][0-9]{3,}) active
(([7][5-9][0-9]|[8-9][0-9][0-9]|[1-9][0-9]{3,}) active)

если мы захотим захватить вещи, отдельно.

...