【发布时间】:2009-01-07 14:05:49
【问题描述】:
即:
echo H#97llo | MagicPerlCommand
标准输出:
Hallo
MagicPerlCommand 类似于
perl -pnle "s/#(\d+)/chr(\1)/ge"
(但这不起作用)。
【问题讨论】:
标签: regex perl substitution
即:
echo H#97llo | MagicPerlCommand
标准输出:
Hallo
MagicPerlCommand 类似于
perl -pnle "s/#(\d+)/chr(\1)/ge"
(但这不起作用)。
【问题讨论】:
标签: regex perl substitution
在 MagicPerlCommand 中将 \1 更改为 $1。 \digit 反向引用样式在评估替换表达式时不起作用(即s///e)。
这在 Windows 和 Linux 上对我有用。
【讨论】:
根据j_random_hacker 的答案,您必须使用$1 而不是\1。
这是因为在正则表达式中使用“/e”修饰符意味着右手边只是另一个普通的 Perl 表达式,而不是正则表达式替换。由于它是 Perl,所以您必须使用 Perl 的语法作为括号引用,而不是通常的正则表达式语法。
【讨论】: