简单代码:
use 5.014;
use warnings;
my $re = <DATA>;
chomp $re;
my $re2 = qr/$re/;
say $re2;
__END__
^\w$
结果:
(?^u:^\w$) #added the (?^u:
是否有任何正确的方法来反编译 $re2 以取回原始正则表达式?
动机:正则表达式是一个配置值,所以需要:
- 阅读
- 编译它
- 将其保存到文件中以供以后使用。
但是不能保存已编译的正则表达式以供以后使用,因为在每次编译中,正则表达式都使用 (?^u: 进行扩展,因此经过几个循环后,我以如下结尾:
(?^u:(?^u:(?^u:(?^u:(?^u:^\w$)))))
因此问题是:
- 这里有什么正确的方法,如何保存编译后的版本?
- 如果没有办法 - 如何反编译,以获得原始版本?
- 任何的想法?