in reply to Re: Matching data against non-consecutive range
in thread Matching data against non-consecutive range
This prints:use Regex::PreSuf; my $re = presuf(10..374, 376..379, 382..385, 388..499, 530..534, 541.. +543, 618, 619, 700..704, 707..709); print "Regex: /$re/\n";
Regex: /(?:1(?:0[0123456789]|1[0123456789]|2[0123456789]|3[0123456789] +|4[0123456789]|5[0123456789]|6[0123456789]|7[0123456789]|8[0123456789 +]|9[0123456789]|[0123456789])|2(?:0[0123456789]|1[0123456789]|2[01234 +56789]|3[0123456789]|4[0123456789]|5[0123456789]|6[0123456789]|7[0123 +456789]|8[0123456789]|9[0123456789]|[0123456789])|3(?:0[0123456789]|1 +[0123456789]|2[0123456789]|3[0123456789]|4[0123456789]|5[0123456789]| +6[0123456789]|7[012346789]|8[234589]|9[0123456789]|[0123456789])|4(?: +0[0123456789]|1[0123456789]|2[0123456789]|3[0123456789]|4[0123456789] +|5[0123456789]|6[0123456789]|7[0123456789]|8[0123456789]|9[0123456789 +]|[0123456789])|5(?:3[01234]|4[123]|[0123456789])|6(?:1[89]|[01234567 +89])|7(?:0[01234789]|[0123456789])|8[0123456789]|9[0123456789])/
Wow, that's big: length($re) is 746 bytes. It won't hurt though, you can just use it to match:
which prints:$zip = '34'; if($zip =~ /\b$re\b/o) { print "Got a match for $zip\n"; }
Got a match for 34
Considered by jmanning2k - Break Long Line
Unconsidered by castaway - Keep/Edit/Delete: 7/7/0 - Get a working browser, see Re^2: Monastery Gates page is too wide (causes)
Note by bart: I use Firefox as my standard browser, and it renders correctly for me. I asked on the Chatterbox, and both castaway and corion said it looked normal to them, too. They suggested it could be caused by a difference in site settings for wrapping... *shrug* I don't know any more.
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^3: Matching data against non-consecutive range
by demerphq (Chancellor) on Jan 28, 2005 at 14:17 UTC | |
by bart (Canon) on Jan 30, 2005 at 11:04 UTC | |
by Spooner (Acolyte) on Jan 30, 2005 at 09:32 UTC |