Any suggestions what the correct regexp should look like ?
Here's another approach: you can write (I hope) simple regexps that match each sample datum. It then becomes a simple matter to assemble them together with Regexp::Assemble, and you'll get an efficient pattern as a result:
#! /usr/local/bin/perl -wl use strict; use Regexp::Assemble; print Regexp::Assemble->new->chomp->add(<DATA>)->as_string; __DATA__ ^\d{4}-\d{3} \d\d(?:\d\d){2}$ ^\d{4}\d{3} \d\d(?:\d\d){2}$ ^\d{4}-\d{3}$ ^\d{4}\d{3}$ ^\d{4}$
When I run the above, I get:
^\d{4}(?:-?\d{3}(?: \d\d(?:\d\d){2})?)?$update: I forgot to mention... now that you have the pattern, it should be obvious where to put the parentheses to capture the bits you're interested in. That is, as they say, left as an exercise to the reader :)
• another intruder with the mooring in the heart of the Perl
In reply to Re: regexp problem
by grinder
in thread regexp problem
by jeanluca
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |