in reply to Regular Expression: search two times for the same number of any signs
Hi,
What's unclear is whether this string is allowed to be embedded inside a longer string, although your example regexes seem to suggest that it's ok. Second, it would be good to know if multiple of these x.x.x sequences are allowed to be present in the source string? Should "ax1x2xbx34x56xc" return two strings, "x1x2x" and "x34x56x", or the single string "x1x2xbx34x56x"?
Here's my TIMTOWTDI solution:
print "$_ => ", extract($_)//'invalid', "\n" for qw/ xxx x.x.x x12x..x x123x...x x1x2x...x x123x.x.x x12x1x ax1x2xbx34x56xc /; sub extract { my ($x) = shift=~/(x.*x.*x)/; return unless length($x)%2 && substr($x,(length($x)-1)/2,1) eq 'x'; return $x; } __END__ xxx => xxx x.x.x => x.x.x x12x..x => x12x..x x123x...x => x123x...x x1x2x...x => x1x2x...x x123x.x.x => x123x.x.x x12x1x => invalid ax1x2xbx34x56xc => x1x2xbx34x56x
Hope this helps,
-- Hauke D
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^2: Regular Expression: search two times for the same number of any signs
by Anonymous Monk on Nov 29, 2016 at 11:02 UTC | |
|
Re^2: Regular Expression: search two times for the same number of any signs
by Anonymous Monk on Nov 29, 2016 at 11:38 UTC | |
by hippo (Archbishop) on Nov 29, 2016 at 12:01 UTC |