Beefy Boxes and Bandwidth Generously Provided by pair Networks
laziness, impatience, and hubris
 
PerlMonks  

Re: [SOLVED] Regex : Limit value of a string

by johngg (Canon)
on Oct 14, 2015 at 14:46 UTC ( [id://1144868]=note: print w/replies, xml ) Need Help??


in reply to [SOLVED] Regex : Limit value of a string

I don't think any of the proposed solutions will reject GigabitEthernet31/0/23 as the (^gi.*)([1-8]), ^(gi.*)([1-8]) or ^ (gi [^/]*) ([1-8]) will all capture GigabitEthernet3 into $1 and 1 into $2. You need to anchor the start of the first digit as well as the end of the last. Also simpler to construct the regex using a range and locally setting $".

$ perl -Mstrict -Mwarnings -E ' my $regex = do { my @range1 = 1 .. 8; my @range2 = 1 .. 48; local $" = q{|}; qr{(?x) ^ GigabitEthernet ( @range1 ) / 0 / ( @range2 ) $ }; }; say $regex; say qq{$_: }, m{$regex} ? q{MATCHED} : q{FAILED} for qw{ GigabitEthernet1/0/48 GigabitEthernet1/0/49 GigabitEthernet1/0/236 GigabitEthernet31/0/48 GigabitEthernet3/0/13 };' (?^u:(?x) ^ GigabitEthernet ( 1|2|3|4|5|6|7|8 ) / 0 / ( 1|2|3|4|5|6|7| +8|9|10|11|12|13|14|15|16|17|18|19|20|21|22|23|24|25|26|27|28|29|30|31 +|32|33|34|35|36|37|38|39|40|41|42|43|44|45|46|47|48 ) $ ) GigabitEthernet1/0/48: MATCHED GigabitEthernet1/0/49: FAILED GigabitEthernet1/0/236: FAILED GigabitEthernet31/0/48: FAILED GigabitEthernet3/0/13: MATCHED $

I hope this is helpful.

Cheers,

JohnGG

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://1144868]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others taking refuge in the Monastery: (5)
As of 2024-04-23 21:52 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found