作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有
my $x = "whatever 123";
$x =~ s/ //g;
$x =~ s/\d/9/g;
frobnicate($x);
尽管在现实生活中它要复杂得多、大得多。我想做的是以函数形式执行替换,如下所示:
my $x = "whatever 123";
frobnicate( regex_substitutions($x, s/ //g, s/\d/9/g) );
这在可读性方面可能看起来像是倒退了一步,但在现实生活中,这样的事情实际上会有所帮助。它的目标是避免在单独的语句中进行正则表达式替换,而是将其合并到表达式中。我猜长期的 perl 专家应该知道有一种巧妙且可读的方法来做到这一点。
(不仅有“不止一种方法”,而且询问任何特定事物的方法也不止一种。如果这个问题与现有问题多余,请原谅我。)
最佳答案
5.14引入/r(eturn):
frobnicate( $x =~ s/ //gr =~ s/\d/9/gr );
任何版本:
frobnicate apply { s/ //g; s/\d/9/g; } $x;
apply
来自List::MoreUtils .
关于regex - 如何将 perl 正则表达式替换编写为表达式中的函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10442196/
我是一名优秀的程序员,十分优秀!