forked from softpano/pythonizer
-
Notifications
You must be signed in to change notification settings - Fork 1
Open
Labels
bugSomething isn't workingSomething isn't working
Description
Dynamically created regular expressions need to be converted at runtime from perl style to python style. For example (from Date::Manip::Date):
my $y4 = '(?<y>\d\d\d\d)';
my $y2 = '(?<y>\d\d)';
my $m = '(?<m>0[1-9]|1[0-2])';
my $d = '(?<d>0[1-9]|[12][0-9]|3[01])';
my $doy = '(?<doy>00[1-9]|0[1-9][0-9]|[1-2][0-9][0-9]|3[0-5][0-9]|36[0-6])';
my $w = '(?<w>0[1-9]|[1-4][0-9]|5[0-3])';
my $dow = '(?<dow>[1-7])';
my $yod = '(?<yod>\d)';
my $cc = '(?<c>\d\d)';
my @cdaterx =
(
"${y4}${m}${d}", # CCYYMMDD
"${y4}\\-${m}\\-${d}", # CCYY-MM-DD
"\\-${y2}${m}${d}", # -YYMMDD
"\\-${y2}\\-${m}\\-${d}", # -YY-MM-DD
"\\-?${y2}${m}${d}", # YYMMDD
"\\-?${y2}\\-${m}\\-${d}", # YY-MM-DD
"\\-\\-${m}\\-?${d}", # --MM-DD --MMDD
"\\-\\-\\-${d}", # ---DD
"${y4}\\-?${doy}", # CCYY-DoY CCYYDoY
"\\-?${y2}\\-?${doy}", # YY-DoY -YY-DoY
# YYDoY -YYDoY
"\\-${doy}", # -DoY
"${y4}W${w}${dow}", # CCYYWwwD
"${y4}\\-W${w}\\-${dow}", # CCYY-Www-D
"\\-?${y2}W${w}${dow}", # YYWwwD -YYWwwD
"\\-?${y2}\\-W${w}\\-${dow}", # YY-Www-D -YY-Www-D
"\\-?${yod}W${w}${dow}", # YWwwD -YWwwD
"\\-?${yod}\\-W${w}\\-${dow}", # Y-Www-D -Y-Www-D
"\\-W${w}\\-?${dow}", # -Www-D -WwwD
"\\-W\\-${dow}", # -W-D
"\\-\\-\\-${dow}", # ---D
);
my $cdaterx = join('|',@cdaterx);
$cdaterx = qr/(?:$cdaterx)/i;
All the (?<NAME>...) constructs need to be changed to <?P<NAME>...).
Also: /hello\Z/ and /hello\z/ regexes generate bad code.
Metadata
Metadata
Assignees
Labels
bugSomething isn't workingSomething isn't working