简单代码:
use 5.014;
use warnings;
my $re = <DATA>;
chomp $re;
my $re2 = qr/$re/;
say $re2;
__END__
^\w$
Run Code Online (Sandbox Code Playgroud)
结果:
(?^u:^\w$) #added the (?^u:
Run Code Online (Sandbox Code Playgroud)
有没有正确的方法来反编译$ re2取回原来的正则表达式?
动机:正则表达式是配置值,因此需要:
但是无法保存已编译的正则表达式以供以后使用,因为在每次编译时,正则表达式都扩展了(?^ u:,所以经过几个周期后,我结束时喜欢:
(?^u:(?^u:(?^u:(?^u:(?^u:^\w$)))))
Run Code Online (Sandbox Code Playgroud)
因此问题是:
Eri*_*rom 15
虽然我只是保留字符串副本以供数据使用,然后在我需要使用它时编译副本,你也可以使用核心模块中的regexp_pattern函数re来返回用于创建编译正则表达式的模式:
use re 'regexp_pattern';
print regexp_pattern qr/^\w$/;
Run Code Online (Sandbox Code Playgroud)
版画
^\w$
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
363 次 |
| 最近记录: |