forked from softpano/pythonizer
-
Notifications
You must be signed in to change notification settings - Fork 1
Dynamically created regular expressions need to be converted at runtime from perl style to python style #366
Copy link
Copy link
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.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
bugSomething isn't workingSomething isn't working